Dal makhani is a quintessential dish in North Indian cuisine, particularly popular in Punjab. It's a creamy lentil preparation where whole black urad dal (lentils) are simmered slowly with onions, tomatoes, ginger, garlic, and a mix of spices until they become luxuriously creamy.
This slow cooked lentil stew dish is known for its velvety texture and deeply satisfying flavors. Deeply comforting & delicious, you are going to love this dal makhani recipe. Best enjoyned with indian flatbreads such as naan and tandoori rotis.

It is impossible to imagine Indian cuisine without dal or lentils. Lentils are a staple in our homes and a loved component of our everyday meals.
Black lentils are a craze in north india! Though I love all kinds of dal, however whole black lentils are my most favorite. In the past, I have shared many punjabi dal recipes made with black lentils such as langar wali dal, dal bukhara, dal maharani and sabut masoor dal.
Dal Makhani literally translates to "buttery lentils". People often mistake that dal makhani has tons of butter added to make it buttery, however the "makhani" refers to the buttery texture that the lentils achieve after long and slow cooking. Butter is definitely added to the lentils to accentuate the comforting buttery taste profile.
It is slow cooked whole urad dal (sabut kali urad), red kidney beans(rajma), butter, aromatic spices, kasuri methi(dry fenugreek leaves) and finished with heavy cream. Traditional dal makhani is cooked over wood or coal fire and the lentils sometimes simmer for hours or even overnight to achieve a thick & creamy texture.
Growing up, dal makhani meant special occasions. It wasn't an everyday thing.Mom would make it on on birthdays, anniversaries or when we had family gatherings. She would also make her tawa no yeast naan or tandoori rotis alongside.
Trust the Process
To make velvety dal makhani, it takes a bit of time and effort. The process of making dal makhani goes beyond the "everyday" pressure cook and temper lentils. It needs a bit of planning and patience. As you make it more and more, slowly you will learn from experience when the lentils have cooked just about right and are not mushy. It took me some time to get a hang of it.
A lot of steps in this recipe can be done a day ahead. You can pressure cook the lentils and keep them refrigerated for 1-2 days. You can fire roast the onions and tomatoes one day ahead too. If you plan slightly, it makes the entire process quick and easy.
My Recipe
I first shared this recipe back in 2015, and now, ten years later, I've made a small change I'm really excited about. Since then, I used to roast the onions and tomatoes together, blend them into a coarse paste, and cook them in butter.
But earlier this year, since I love to retest my recipes from time to time, I picked it up again. The first change was that I decided to skip the fresh tomatoes fully and replace them with canned tomato sauce.
Secondly, I cooked all the aromatics separately like in classic versions, and it really made a big difference! The onions turn sweeter when browned in butter, the tomatoes taste brighter, and the dal ends up with that rich, restaurant-style flavor.

5 Top Tips for Best Dal Makhani
- Soak The Lentils - Soaking sabut urad dal and rajma softens their skin and the grains swell. This not only reduces the cooking time but also the lentils cook out creamier. I have never cooked unsoaked urad lentils and I don't recommend.
- Slow Cook & Simmer - Slow-cooking the lentils makes them develop creamy consistency naturally since the startches in the lentils slowly release. Slow cooking also allows the flavors of different spices that we going add, to blend togther in a cohesive way.
- Regular Stirring - Urad lentils tend to become sticky as they cook. Stirring the dal while it cooks helps prevents dal from sticking or scorching at the bottom of the pot. Secondly, stirring helps break down the lentils, creating a creamier consistency. You also get to feel and monitor the consistency of dal when you stir while it slow cooks.
- Don't go overboard on Onion & Garlic - The prominent taste in dal makhani should be that of dal. Too much onion and garlic can get overpowdering and mask the flavor of lentils. We want to use them to complement the flavor of the lentils. Also don't grind the onion or garlic to a fine paste else they become too strong.
- Be light handed with spices - A well made dal makhani is all about simplicity! Similar to onion & garlic, spices can also get overwhelming pretty easily and dominate the natural taste of lentils. We want a hint of spices in dal makhani.
More Tips
- Use Tomato Puree - For that restaurant style dal makhani taste, use a little bit of canned tomato sauce or tomato puree(in india). Tomato puree gives a smoother texture to dal makhani as well as enhances the color of dal. I use a combination of fresh tomatoes and canned tomato sauce.
- Don't skimp on butter - Dal makhani is a rich & comforting dish thanks to butter. Salted butter gives savory flavor to the dal. If you will use less butter, that luxurious & indulgent mouthfeel of dal makhani will be missing.
- Don't make it sweet - When it comes to such creamy punjabi dishes, people often confuse them to be sweet. Authentic dal makhani is rich & savory. Sweetness is not the intended taste profile of this creamy dal.
- Make it Ahead - I highly recommend making dal makhani a few hours ahead of when you plan to serving. A day ahead is even better. Dal Makhani tends to thicken as it sits and the texture is improved immensely. Also, all the flavors are absorbed beautifully.
Ingredients
- Whole Black Urad Dal- These lentils are the key ingredient for making dal makhani. In Hindi, these are called sabut kali urad. You can easily purchase from any south asian or indian grocery stores. Whole urad dal is also available on amazon.
- Kasuri methi - Punjabi dishes are incomplete without a sprinkle of kasuri methi(kasoori methi). If you cannot find these dry fenugreek leaves, simply skip them since there is no substitute.
- Ghee - Urad dal becomes sticky as it cooks. A little ghee if added during boiling the lentils prevents the grains from sticking to each other and the pot.
Instructions
Pressure Cook The Lentils
(This can be done a day ahead)
- Soak the black urad lentils and kidney beans in enough water for atleast 12-18 hours. The lentil is pretty tough and depending on ambient temperature it might take 18-24 hours for the lentils to soak properly. You should be able to break a grain of soaked lentils between your index finger and thumb- that's how you know thats its rightly soaked.
- Drain and add the soaked the dal and rajma to a pressure cooker along with water, chopped ginger & garlic, hing, salt, ghee, cinnamon and black cardamom.
- Pressure cook the lentils on medium heat for 2-3 whistles, then reduce to low and let cook for about 10-15 minutes. Switch off the stove and then let the pressure release naturally.
- Open the pressure cooker lid. The lentils should hold shape, their skins slightly cracked and the grains tender(easily mushed). While the lentils are still hot, with the help of masher or back of a spoon, mash slightly. Do not mash at length else the lentils will become sticky instead of creamy. If you feel that the lentils are slightly tough to mash, pressure cook for another 1-2 whistles on medium.


Temper The Dal
- In a heavy bottom cooking pot (4 qt or larger) or kadhai (indian wok), heat up the butter + ghee on low heat. Don't let brown. Add the finely chopped onion and fry on low heat for 6-8 minutes while stirring regularly.


Cooking The Onions
This is probably the most important part of making dal makhani if you ask me. If you cook the onions to deep brown, their flavor will get too strong and steal the delicate buttery taste of lentils. If they remain raw, that will also affect the taste of dal. We want all the raw smell and taste to go away with light browning. This is achieved by slowly sauteeing the onions in butter.


- Once the onions are light brown, add the ginger & garlic paste and kashmiri red chilli powder. Fry for 30-40 seconds to cook off the raw smell of garlic.


- Pour the tomato sauce now. Mix with onions and on low medium heat, cook for 2-4 minutes until you see butter beginning to seperate on the sides of the pot.
- Add the cooked lentils and mix very well.
Slow Cook Dal Makhani
- Add hot water before we set dal to slow cook. I add about ¾ cup to 1 cup hot water. Adjust depending on the desired consistency, however do not make it too runny.


- Bring the dal to a slow boil and then reduce the heat to low. Let simmer for about 30-40 minutes. Stir from time to time while the dal is slow cooking. The lentils will thicken and the flavors will develop.
- Once the lentils have slow cooked enough, finish with kasuri methi, garam masala, a bit of freshly grated nutmeg, a few tablespoons of butter and heavy cream.


- Let simmer on low heat (don't let boil after you've added cream) for another 10 -12 minutes.
- Smoky flavor - If desired, smoke the dal using dhungar method. Place the bowl on top of dal. Heat up a piece of charocal over open fire. Place the hot coal in the bowl. Drizzle ghee over the hot charcoal. Immediately cover and let smoke for maximun 1-2 minutes else smoky flavor will get overpowering. It is similar to how I smoke dal bukhara.
- Let the dal rest for atleast 30 minutes before serving. They get better as they sit.
- Garnish with little heavy cream, chopped cilantro, green chillies or ginger (if desired) before serving.
Serving
- Serve dal makhani with indian flatbreads like soft and doughy naan or crisp charred tandoori rotis or flaky plain parathas.
- If you prefer rice, serve with plain steamed basmati rice, jeera rice, pulao or biryani.
- Accompainments - Serve sliced onions, papaddams, kachumber, garlic pickle, green chutney or raita for a hearty meal.
- Party Menu Idea - For a vegetarian indian feast, serve dal makhani with dishes like paneer biryani, shahi paneer korma and dum aloo.

Storing & Reheating
- Refrigerator: Cool down dal makhani to room temperature and transfer it to an airtight container. Consume the refrigerated dal within 3-4 days for best freshness.
- Freezing - If you wish to freeze dal makhani,dont add heavy cream. Cool down the dal completely, portion it and freeze using airtight containers or freezer bags for 3-4 weeks.
Reheating - It is natural for dal to thicken as you store it. You can adjust the consistency using water or heavy cream. You may reheat over stove or in microwave. Heat over medium-low heat on stove, stirring occasionally. Add a dollop of butter or splash of heavy cream once hot. You could microwave for 20-30 seconds, stir 1-2 times in between. For frozen dal, add the frozen dal to a sauce pan, add ¼ cup water and heat up. Once hot, add heavy cream and butter to finish the dal.
I originally published this recipe in March 2015. I updated this post in January 2024 with lots of extra tips and tricks that I have learned in the past 9 years. I again updated the recipe in October 2025 with few tweaks. I have also included step by step process shots for better understanding the texture and color of the dal in different stages of cooking. If you want the old recipe, let me know in comment section below and I will share it with you.

Punjabi Dal Makhani Recipe
Ingredients
For Cooking the lentils
- ¾ cup(170g) sabut urad dal whole black gram lentils
- ¼ cup(60g) rajma red kidney beans
- 1 tablespoon ghee
- 1 teaspoon ginger finely chopped or julinned
- ½ tablespoon garlic finely chopped
- 3 cup water
- ½ teaspoon salt
Spices to add while boiling dal (skip any you don't have)
- 1 large bay leaf
- ¼ inch cinnamon stick
- 1 small black cardamom skip if not available
For Tempering the lentils
- 4 tablespoon butter I use kerrygold butter, use good quality butter
- 1 tablespoon ghee
- 1 medium (120g) onion red, yellow, white any work
- ½ cup(100g) tomato sauce canned, use unflavored tomato sauce
- 1 teaspoon garlic paste
- ½ teaspoon ginger paste
- 2 tablespoon tomato sauce or tomato puree
- 1 cup hot water or as needed
- ¾ teaspoon salt adjust to taste
- 1.5 tablespoon butter for finishing, optional
- ¼ to ⅓ cup heavy cream adjust quantity depending on how creamy you want
Spices
- ¾ teaspoon kashmiri chili powder or paprika
- ⅛ teaspoon nutmeg powder freshly grated
- ¼ teaspoon garam masala powder
- 1.5 teaspoon kasuri methi crushed, dry fenugreek leaves
Instructions
PRESSURE COOK THE LENTILS (This can be done a day ahead)
- Soak the black urad lentils and kidney beans in enough water for atleast 12-18 hours. This lentil is pretty tough and depending on ambient temperature it might take up to 18- 24 hours for the lentils to soak properly.
- Drain and add the soaked the dal and rajma to a pressure cooker along with water,chopped ginger & garlic, hing, salt, ghee, cinnamon and black cardamom.
- Pressure cook the lentils on medium heat for 2-3 whistles, then reduce to low and let cook for about 10-15 minutes. Switch off the stove and then let the pressure release naturally.
- Open the pressure cooker lid. The lentils should hold shape, their skins slightly cracked and the grains tender(easily mushed). While the lentils are still hot, with the help of masher or back of a spoon, mash slightly. If you feel that the lentils are slightly tough to mash, pressure cook for another 1-2 whistles on medium.
TEMPER THE DAL
- In a heavy bottom cooking pot (4 qt or larger) or kadhai (indian wok), heat up the butter on low heat. Don't let brown too much, we want light brown color. Add the onion paste and fry on low heat for 6-8 minutes while stirring regularly while raw smell is gone.
- Once the onions are light brown, add the ginger & garlic paste and kashmiri red chilli powder. Fry for 30-40 seconds to cook off the raw smell of garlic.
- Pour the tomato sauce next and add sugar. Mix and on low medium heat, cook for 2-4 minutes until you see butter beginning to seperate on the sides of the pot. Add the cooked lentils and mix very well.
SLOW COOK DAL MAKHANI
- Add hot water before we set dal to slow cook. I add about ¾ cup to 1 cup water. Adjust depending on the desired consistency, however do not make it too runny.
- Bring the dal to a slow boil and then reduce the heat to low. Let simmer for about 30-35 minutes. Stir from time to time while the dal is slow cooking. The lentils will thicken and the flavors will develop.
- Once the lentils have slow cooked enough, finish with kasuri methi, garam masala, a little bit of freshly grated nutmeg, a few tablespoons of butter and heavy cream.
- Let simmer on low heat (dont let boil after you've added cream) for another 10 -12 minutes.
- Smoky flavor - Smoke the dal using dhungar method. Place a small bowl on top of dal. Heat up a piece of charocal over open fire. Place the hot coal in a bowl. Drizzle ghee over the hot charcoal. Immediately cover and let smoke for maximun 1-2 minutes else smoky flavor will get overpowering. It is similar to how I smoke dal bukhara.
- Let the dal rest for atleast 30 minutes before serving. They get better as they sit.
- Garnish with little heavy cream, chopped cilantro, green chillies or ginger (if desired) before serving.
Video
Notes
- Soak The Lentils - Soaking sabut urad dal and rajma softens their skin and they swell. This not only reduces the cooking time but also the lentils cook out creamier. I have never cooked unsoaked urad lentils and I don't recommend.
- Slow Cook & Simmer - Slow-cooking and simmering the lentils makes them develop creamy consistency naturally since the startches in the lentils slowly release. Slow cooking also allows the flavors of different spices that we add to blend togther in a cohesive way.
- Regular Stirring - Urad lentils tend to become sticky as they cook. Stirring the dal while it cooks helps prevents dal from sticking or scorching at the bottom of the pot. Secondly, stirring helps break down the lentils, creating a creamier consistency. You also get to feel and monitor the consistency of dal when you stir while it slow cooks.
- Don't go overboard on Onion & Garlic - The prominent taste in dal makhani should be that of dal. Too much onion and garlic can get overpowdering and mask the flavor of lentils. We want to use them to complement the flavor of the lentils. Also dont grind the onion or garlic else they become too strong.
- Be light handed with spices - A well made dal makhani is all about simplicity. Similar to onin & garlic, spices can also get overwhelming pretty easily and dominate the natural taste of lentils. We want a hint of spices in dal makhani.
- Refrigerator: Cool down dal makhani to room temperature and transfer it to an airtight container. Consume the refrigerated dal within 3-4 days for best freshness.
- Freezing - If you wish to freeze dal makhani,dont add heavy cream. Cool down the dal completely, portion it and freeze using airtight containers or freezer bags for 3-4 weeks.
- Reheating - It is natural for dal to thicken as you store it. You can adjust the consistency using water or heavy cream.You may reheat over stove or in microwave. Heat over medium-low heat on stove, stirring occasionally. Add a dollop of butter or splash of heavy cream once hot. You could microwave for 20-30 seconds, stir 1-2 times in between. For frozen dal, add the frozen dal to a sauce pan, add ¼ cup water and heat up. Once hot, add heavy cream and butter to finish the dal.
-
- Serve dal makhani with indian flatbreads like soft and doughy naan or crisp charred tandoori rotis or flaky plain parathas.
-
- If you prefer rice, serve with plain steamed basmati rice, jeera rice, pulao or biryani.
-
- Accompainments - Serve sliced onions, papaddams, kachumber, garlic pickle, green chutney or raita for a hearty meal.
-
- Party Menu Idea - For a vegetarian indian feast, serve dal makhani with dishes like paneer biryani, shahi paneer korma and dum aloo






Nipa says
Thank you for sharing this recipe and this a firm favourite in my home
Tanvi Srivastava says
Thank you for sharing your feedback!I am glad to know you enjoyed the recipe