Dal Makhani Recipe (Restaurant Style)

Updated: August 14, 2026, By Swasthi Shreekanth

5 from 631 votes

A bite of this Punjabi Dal Makhani will instantly transport you to flavor heaven. It’s luxurious, creamy and super delicious. This is India’s most popular lentil dish and I’ll show you how to make the BEST Dal Makhani on stovetop and in the instant pot. My time-tested recipe has been a reader’s favorite on Swasthi’s.

Jump To Recipe Jump to comments Jump To Video

Authentic Dal Makhani - Restaurant Style
Punjabi Dal Makhani

About Dal Makhani

Dal Makhani is a popular North Indian dish made by slow cooking soaked whole urad dal (black dal) & Rajma (red kidney beans) with tomatoes, butter and spices. It’s finished with a small amount of fresh cream and a generous amount of cultured butter. It is best eaten with Jeera Rice, basmati rice & flatbreads like Tandoori Roti or Butter Naan.

Dal Makhani did not originate in the home kitchens but was born in a restaurant named Moti Mahal in Delhi. It was inspired from the home-style Punjabi maa ki daal, which was enriched to make a luxurious vegetarian dish that was as good as their Butter Chicken.

Traditionally, the process would start in the night where soaked lentils were left to slow-cook on the residual heat of a Tandoor (a clay oven). In the morning, a tempering made with onions, tomatoes and spices was added before leaving it to simmer for 1 to 2 hours until creamy and luscious.

Over the years, restaurants and dhabas adapted to cook this on wood/coal fire and pressure cookers. Now it’s one of the most popular dishes made all over India for special occasions like parties, weddings, festivals etc. Few other dishes like dal bhukara and dal maharani were developed based on dal makhani.

This recipe uses only a handful of ingredients but the main flavor comes from slow-cooking so don’t hurry up.

Ingredients & Substitutes

  • Black Dal – Black whole urad dal (sabut urad) when cooked becomes thick and viscous, which is its unique character and this is what makes it a popular dal. You cannot get the same texture with any other lentils, so there is no substitute.
  • Rajma – While the black dal cooks down to a creamy texture, kidney beans retain their texture in the dish and is used mainly for texture & flavor. If you don’t have access to these you may sub with the same amount of urad dal. Adding other beans will alter the flavor or dal makhani.
  • Chana Dal – I’ve not used Chana dal here but if you want you may use 2 tablespoons. I’ve another urad dal recipe on the blog and I use chana dal in that but not here.
  • Cream – Fresh cream, whipping cream, cooking cream or homemade malai are ideal in this recipe. A small amount of cream not only cuts down the sticky and vicious texture but also imparts richness and flavor. To use homemade malai, blend it in until smooth and stir with a few tbsps of dal before adding to the pot.
  • Butter – Don’t compromise on the quality of butter. Use cultured unsalted butter if possible else use regular butter.
  • Spices – My recipe uses an ideal amount of fragrant garam masala and red chili powder. Dal makhani is not made spice heavy, instead the flavors of lentils are left to shine through. If you do not have a fragrant garam masala you may also add 2 green cardamoms and 1 black cardamom in the tempering.
  • Onions, tomatoes, ginger and garlic form the base of the dal. I like to use pureed fresh tomatoes or bottled passata.
  • Kasuri methi – A small quantity of dried fenugreek leaves rounds out the overall flavors. If you don’t have you omit it.

How to make this plant based?

Use neutral oil to saute and cashew cream at the end. Soak ¼ cup good quality cashews in ½ cup boiling water and blend until smooth. Add it during the last 4 to 5 mins of cooking.

Similar recipes
Brown Lentils (Whole Masoor Dal)
Red Lentil Curry
Kadhi Pakora
Chole recipe
Chana masala

Photo Guide

How to make Dal Makhani (Stepwise Photos)

1. Soaking lentils: Add 1 cup urad dal (200 grams Indian black lentils) & ¼ cup rajma (55 grams red kidney beans) to a large pot and rinse thoroughly a few times. Drain the water and pour 4 cups fresh water. Soak them overnight, uncovered. To speed up the soaking process you may pour boiling water and soak for 4 hours.

urad dal & rajma in measuring cups to soak

2. Cooking lentils: After they are soaked well, drain the water and pour 4 cups fresh water. Pressure cook on a medium heat for 10 whistles. It takes about 35 to 40 mins. If using an Instant pot pressure cook for 20 mins. If cooking in a pot add more water as required and cook until they become tender. This is how they look after pressure cooking them.

pressure cooked urad dal and rajma

3. Check if cooked well: When the pressure releases naturally, open the lid and check if the dal is well cooked. Both rajma and urad dal have to be softened. Press down a rajma and few urad dal in between your thumb and fore finger. They should get mashed very well easily. They should not be aldente or even slightly hard.

If they are under-cooked, add half cup more hot water and cook for a little longer about 3 to 4 whistles.

soft cooked sabut urad dal and rajma for dal makhani

4. While the dal cooks, prep up the following ingredients

  • Fine chop 1 small to medium onion to make about ½ cup chopped (65 grams)
  • 1 tablespoon ginger and garlic paste (18 grams). Alternately you may grate 4 to 5 garlic cloves (9 grams) and 1 inch ginger (9 grams) to make ¾ tbsp each grated.
  • 1 cup tomato puree (220 grams bottled like passata or chop 2 to 3 medium tomatoes & puree in a blender).

Make Masala

5. Heat a heavy bottom pot with 2 tablespoon ghee. If using optional whole spices, add 1 bay leaf, 1 black cardamom and 2 green cardamoms. When they begin to sizzle, add the half cup chopped onions. Saute until golden or light brown, for 7 to 8 mins.

sauteing onions in butter to make dal makhani

6. Stir in 1 tablespoon ginger garlic paste. Saute for 1 minute until it smells aromatic.

sauteing ginger garlic paste

7. Pour 1 cup tomato puree (220 grams) and saute for 3 to 4 mins.

adding pureed tomatoes to make dal makhani

8. Stir in

  • 1 teaspoon sea salt
  • ¾ to 1½ teaspoon Kashmiri red chili powder (or use paprika). Adjust to your preference. I use 1 to 1½ teaspoon. If you are using hot chili powder cut down.
  • 1 teaspoon garam masala. I use this punjabi garam masala. Please ensure you use a good one.
adding spice powders to make makhani  masala

9. Saute until the masala cooks well and turns thick, for another 4 mins. The masala begins to smell good when done.

thick onion tomato masala for dal makhani

10. Mash the cooked lentils slightly and transfer to the pot along with the stock (dal cooked water). Stir well and add 1 cup hot boiling water (240 ml).

cooked rajma and urad dal in pot

Slow Cook Dal

11. Stir and continue to cook on the lowest possible heat stirring often to avoid burning. After 60 mins, you will need another half to 1 cup hot water (240 ml) and cook until the dal thickens. I add about 2 cups water in total (1 + ½ + ½).

adding more water to cook dal makhani

12. Continue to cook on a low flame for a total of 90 mins stirring every now and then to prevent the dal sticking at the bottom.

slow cooking dal makhani in a white pot

13. Taste the dal makhani to adjust salt & garam masala (half tsp more if you want) to your preference. Crush 1 tablespoon kasuri methi and crush in between your palms. (This brings out the flavor). Add it here.

adding kasuri methi

14. Stir in ¼ to ⅓ cup heavy cream (60 to 80 ml, cooking cream/whipping cream) and continue to cook for another 10 mins. If you are making ahead for later use, you may add cream, butter and kasuri methi when you reheat it. So just make the dal makhani without all of the 3, cool and refrigerate or freeze. Add them when you reheat.

adding cream

15. This is the consistency I got after 90 mins of total cooking (apart from the initial pressure cooking). Thick, creamy & flavorful. Then stir in 3 tablespoon unsalted butter (cultured if you can). Turn off the heat.

adding butter

Smoking Dal Makhani (Optional)

Please avoid this if you are a novice cook. Dal makhani tastes good even without this step.

Place a tall steel cup or disposable aluminum foil bowl in the center of the pot. Ensure it doesn’t get submerged in the dal. Hold a piece of wood coal with a tong over direct fire. For extra safety use a stove lighter or a candle instead of a larger source of fire.

After a few minutes, the coal will turn red & hot. Then carefully place it inside the cup and pour ¼ teaspoon of ghee. You will immediately see fumes emitted by the coal. Cover the pot immediately and leave for 3 to 4 mins.

smoking dal makhani with a wood coal

You may repeat pouring another ¼ teaspoon ghee to smoke for longer. Smoking too long will leave a very strong flavor so 3 to 4 mins is good enough for our taste.

Dal makhani goes very well with Indian breads like butter naan, roti, tandoori roti and even with jeera rice or plain Basmati Rice. Garnish dal makhani with cream or butter before serving.

Dal Makhani Recipe

Expert Tips

  • Preventing dark blackish dal – If your dal makhani turns black instead of deep brown, blanch them before soaking. Add them to a bowl and pour hot water. Let them sit for 2 mins and drain off the water. Pour cold water and repeat rubbing and rinsing 2 to 3 times. Soak overnight and follow the recipe.
  • Soaking Lentils – Soak lentils for a minimum of 8 hours to prevent bloating and help them cook easily to a creamy consistency. To speed up the soaking process you may soak them in boiling hot water for 4 hours. Drain the water and cook.
  • Precook lentils – It is essential to precook the soaked dal well before adding to the makhani masala. Even slightly undercooked dal will not work well here. The acidity in tomatoes will slow down their cooking and takes longer to get the creamy consistency.
  • Butter & cream – Be generous with butter and cream else you won’t get that rich taste. If you are on a low fat diet, cut down your portion size rather than making the dish low fat. I prefer to use half butter and half ghee for cooking the masala as using only butter burns quickly. You may use one for the other here.
  • Slow Cooking – Don’t hurry up while cooking. You need to cook them slowly and this brings out the best flavors of dal. Remember we want to mimic the restaurant flavors which is achieved by slow cooking overnight on tandoor or wood/coal fire. I suggest simmering for at least 90 mins after adding the cooked lentils to the tempering or masala.

Smoking dal makhani

Traditionally made dish is cooked on tandoor or coal fire for long hours which naturally imparts a smoky aroma to the dish. To some extent the smoky flavor can be recreated at home by smoking the final dish. This step is optional. I have shown it in detail in the video you may take a look.

If you prefer to smoke your dal makhani, ensure you use wood coal that has no additives or fuel added to it. Many people also add liquid smoke to the dish to get that strong flavor.

Faqs

  • How to freeze dal makhani? – For best flavors, cool it immediately using an ice bath. Transfer to smaller freezer safe glass containers & freeze within 2 hours of cooking. This way the flavors are retained to a maximum extent. When you prefer to use, thaw it in the fridge overnight or for 10 to 12 hours.
  • How to reheat? – To reheat, transfer to a pot and cook until bubbling & very hot. If needed pour little water. Alternately transfer to a steel bowl and reheat in instant pot (PIP) on a high pressure for 3 to 4 mins. I do not add any water for reheating in the IP.
  • How to double the recipe? – To double this recipe, double all the ingredients. Pressure cook the lentils for the same amount of time. I slow cook the dal makhani for longer than 2 hours after adding the cooked lentils to the masala.
Dal Makhani Recipe - Authentic Punjabi Restaurant Style

Related Recipes

Recipe Card

This recipe was first published in May 2016. Updated in August 2026.

dal makhani recipe

Dal Makhani Recipe (Restaurant Style)

5 from 631 votes
Share Print
Prep 10 minutes
Cook 2 hours
Soaking time 8 hours
Total 10 hours 10 minutes
I'll show you how to make the most delicious restaurant style Punjabi Dal Makhani at home. Slow cooking will transform only a handful of ingredients to this beautiful, creamy and luxurious dish.
Servings 4 to 5

Ingredients

To cook dal
  • 1 cup (200 grams) urad dal (Indian black lentils/ whole black gram)
  • ¼ cup (55 grams) rajma (red kidney beans, or sub with urad dal)
  • 4 cups (960 ml) water to pressure cook the dal (more to cook in pot)
To Temper/ Masala
  • 2 tablespoons (30 ml) ghee (or use oil)
  • 3 tablespoons (42 grams) unsalted butter (cultured butter if you can)
  • ½ cup (65 grams) onions (fine chopped 1 small to medium)
  • 1 tablespoon (18 grams) ginger garlic paste (or ¾ tbsp. (9 grams) each grated)
  • 1 cup (220 grams) tomato puree (bottled or 2 to 3 medium tomatoes pureed in a blender)
  • ¾ to 1½ teaspoon Kashmiri red chili powder (adjust to preference, I use 1 tsp)
  • 1 teaspoon garam masala (+ ½ tsp more if you want at the finishing stage)
  • 1 teaspoon sea salt (adjust as needed)
  • 2 cups (480 ml) hot water (to add later)
  • 1 tablespoon kasuri methi (dried fenugreek leaves, optional)
  • ¼ to ⅓ cup (60 to 80 ml) heavy cream (cooking cream or whipping cream, more to garnish if you want)
Whole Spices (optional)
  • 1 bay leaf, 2 green cardamoms, 1 black cardamom

Method

Preparation
  1. Add urad dal and rajma to a large bowl and rinse them rubbing very well. Drain and repeat the rinse thrice. Soak in 4 cups of water, overnight. Later drain, rinse well and drain again.
How to make Dal Makhani (stovetop)
  1. Pour 4 cups fresh water to the dal and pressure cook for 10 whistles on a medium heat or in the instant pot for 20 mins (high pressure). If you don’t have a cooker, cook in a heavy bottom pot until soft and tender, adding more hot water as needed.
  2. Both urad dal and rajma must cook down very soft. When mashed with a spoon the dal and rajma must be soft and get mashed well easily. If not then pour another half cup hot water and continue to cook for another 3 to 4 whistles on a medium heat.
  3. Heat a heavy bottom pot with ghee. Add the whole spices if using and let them sizzle for a minute.
  4. Stir in the onions and saute until golden, for 7 mins. Stir in ginger garlic paste and saute for 1 minute until aromatic.
  5. Pour the tomato puree and cook for 3 to 4 minutes. Stir in salt, chili powder & garam masala. Saute well until the masala smells good and turns thick, for 4 to 5 mins.
  6. Mash the cooked urad dal slightly and pour it along with the stock (lentil cooked liquid). Pour 1 cup hot water & mix.
  7. Cook on a low flame until the dal becomes thick, stir often in between to prevent burning the bottom. After 60 mins, the dal thickens.
  8. Add another ½ to 1 cup hot boiling water and continue to cook until really thick. (This takes another 30 mins. Totally cook for about 90 mins from the time you added the cooked dal to the pot. The cook time may vary depending on your pot and stove)
  9. Crush kasuri methi in your palm and add it. Also pour the cream. Stir and cook again for 6 to 8 mins until it becomes thick and creamy. Taste and add more salt or garam masala if needed. Add butter and mix well.
Dhungar – Smoking (optional)
  1. Place a small piece of foil or an aluminum foil cup or a tall steel cup on the dal makhani. Hold 1 to 2 inch piece of natural wood charcoal with a tong and burn it on direct fire until red hot, for 3 to 4 mins. Then place it on the foil/cup kept over dal.
  2. Quickly pour ¼ tsp ghee on the hot coal. Immediately cover the pot and allow to smoke for 3 to 4 mins. For stronger flavor, add another ¼ tsp ghee on the coal and repeat the smoking.
  3. Garnish dal makhani with more butter or cream & serve with fluffy Basmati rice or naan.
Dal Makhani in the Instant Pot
  1. Heat ghee in the instant pot and add onions. Saute until they turn golden, for about 5 mins.
  2. Stir in the ginger garlic paste and saute for 1 minute.
  3. Add the tomato puree, red chili powder, garam masala and salt. Saute for 3 to 4 mins and add the soaked & drained lentils.
  4. Pour 3 cups water and pressure cook for 30 mins. Wait until the pressure drops, for about 15 mins and open the lid.
  5. Mash some of the urad dal, not rajma and press saute mode. Pour 1 cup hot water, mix and continue to cook on saute mode for 12 to 15 mins (switch bet low saute to med saute & vice versa as required)
  6. (Optionally if you want you may add 1 more cup hot water & cook for 12 to 15 mins more – I found this way it tastes exactly as the stovetop version)
  7. Taste test and adjust salt. Stir in the crushed kasuri methi, cream and more garam masala if you want. Add the butter and turn off.

Notes

  1. You can halve the recipe to make 2 to 3 servings. Cut down the cook time to 60 mins.
  2. Older stock of lentils & beans (aged) often take longer to cook. So buy them from a store which sells fresher stocks.
  3. You may use whole spices in tempering – 1 black cardamom, 2 to 3 green cardamoms and 1 bay leaf.
  4. You can use bottled or homemade tomato puree. To make the puree, chop and blend a little over 1 cup tomatoes to make 1 cup puree.
  5. You can cook the lentils in a pot if you don’t have a cooker. It may take about 60 to 90 mins. Add more water than mentioned in the recipe.
  6. Simmer the dal for at least 90 minutes to get the best texture. If you double the recipe, simmer for longer.
  7. Dal makhani tastes best when slow cooked on a low flame for long time. So do not cook even on a medium flame.
  8. To get the authentic taste you can cook the dal for as long as 3 hours on the lowest flame, adding more water as needed.
  9. Keep stirring consistently to prevent burning.

Video

Watch Dal Makhani Video

Tried this recipe?

Mention @SwasthisRecipes or tag #swasthisrecipes!

Nutrition

Calories410kcalCarbohydrates37gProtein15gFat22gSaturated Fat13gCholesterol59mgSodium1217mgPotassium350mgFiber16gSugar4gVitamin A664IUVitamin C11mgCalcium72mgIron5mg

Meat Recipes

About Swasthi

I’m Swasthi Shreekanth, the recipe developer, food photographer & food writer behind Swasthi’s Recipes. My aim is to help you cook great Indian food with my time-tested recipes. After 2 decades of experience in practical Indian cooking I started this blog to help people cook better & more often at home. Whether you are a novice or an experienced cook I am sure Swasthi’s Recipes will assist you to enhance your cooking skills. More about me

Follow Swasthi’s Recipes

Comments

Recipe Rating




603 Comments

5 stars
Thank you for sharing your recipes Swasthi. I had never liked lentils much but this recipe has become one of my favourites!

5 stars
I’ve prepared a dozen recipes from your site, but I haven’t tried this recipe yet. I had this dish in a restaurant yesterday and I immediately rushed to find your version. When I prepare an Indian dinner at home, feeling the flavours aloo gobi, lamb, bhindi, chickpeas, fragrant rice, my friends tell me that they feel like they are actually in India. 😁

I just have a question: if one doesn’t have the specific lentils, or beans, can they be replaced with others, such as green lentils and pinto beans? Of course, the taste will be different, but the texture and preparation should be more or less the same, right?

5 stars
Amazing dal makhani! I made a double batch to freeze but my family finished more than half of it. Reserved the remaining for tommorrow’s meal. Next time will triple to freeze one meal.

5 stars
This is my first time trying to cook South Asian cuisine. I followed the instapot instructions and my lentils turned out amazing. Definitely will make again. Thank you Swasthi for the recipe!

5 stars
Made this and it was delicious! It even was a hit with my non vegetarian husband and son food critics. I made 3 times the recipe but realised that was too much for my IP so I split into 2 batches which worked out well! I just kept the semi prepared second batch in the fridge overnight and finished in the IP the next day.

5 stars
Made it over the stove and it took a long time but turned out delicious — do you know if I can freeze some of it, and if so, how long it will last?

5 stars
Delicious recipe! I used my instant pot and it was handsfree. Everthing came together under an hour and we have enough leftovers for a couple of servings.

5 stars
This whole website is brilliant. Thanks so much for a great job.

5 stars
My wife and I have several vegetarian friends, so I am studying Indian vegetable and legume cooking.

I made this dish for the first time today, and it came out absolutely great. Mild heat level, good spice, actually a little bit of sweetness too (probably from the tomatoes and onion?).

I had the kitchen to myself for the day, so I did this in a Dutch oven. The black gram lentils soaked overnight, then took 2 hours over low heat. I cheated a bit and used drained and rinsed kidney beans from a can, and added them in when I combined the lentils with the sauce, for a final hour of cooking.

5 stars
Amazing! I’ve made this so many times with great success.

5 stars
Your recipes are amazing Swasthi. Everthing to point with clear instructions. I make this every month and my family looks forward to the best dal makhani. We top our individual servings with a tsp of butter and it’s pure bliss! Thank you for everything

I don’t own a pressure cooker so I boiled the dal on the stove. It’s been 50 mins and they look done. Can I make the rest another day? If so for how many days can I refrigerate

5 stars
Yummy recipe! Our dal makhani turned out top-notch even without the addition of butter and cream. Love the texture. Going to reheat it tommorrow with butter and cream.

I don’t know why the kidney beans I bought are not as dark as yours in the picture. Will my dal makhani still have that beautiful color? Please help

5 stars
Your recipes never fail me! Everyone who eats this say they ate the best dal makhani. Thank you Swasti

5 stars
Such a delicious recipe ! And very easy to share with my children who do not like spice ! Easy to make and so very delicious and festive.

Swasthi, I’m running out of tomatoes. Can I use tinned puree? Hope it won’t taste metallic. Do I use the same amount as in the recipe 1 cup?

5 stars
This recipe is SO delicious and perrrrfect! Just blindly followed it and oh my god!! Probably the BEST Dal makhani Ive had, and I was cooking it for the first time! Follow all the steps exactly as provided, the only thing I substituted was coal with cinnamon sticks as I didn’t have it but it was 💯

Fool proof and absolutely brilliant! Thank you Swasthi!

5 stars
I’ve made dal so many times but this one is exceptionally delicious. Love the flavors of dal with so little spices. Going to try more recipes from here

5 stars
This is really yummy!! The first time I made it, I burned it haha! Now I set a 5m timer so I stir it often enough to avoid burning. I use all the optional spices and usually make a double batch so it lasts me all week. I cook it all on the stove so it takes quite a while. Cooking the lentils and beans takes about 1h20m (double batch or 60m for a single batch) and then cooking it in the masala takes about 2h30m or so. It’s actually pretty convenient bc as long as you keep adding water and stirring, you can’t really overcook it. It takes me around 4hrs to make a double batch (not including soaking time) but I don’t mind because most of that time is just cook time, so you can do other things around the house while it cooks. Since I’m the only one who eats it, I make it pretty often!

5 stars
I’ve made this recipe on repeat for a few years and it turns out exceptionally well. Absolutely agreed with the commenter below. Don’t deviate from the recipe if you want to experience the true punjabi makahani, make it as written. You may add more cream or butter to your diet and taste preference.