There are some dishes that represent Punjabi cuisine, like none other. Dal Makhani is one of them. It is one of the most popular lentil recipes from North Indian Punjabi cuisine and is made with whole black lentils (urad dal or kali dal in Hindi) and kidney beans (rajma in Hindi). This Dal Makhani Recipe is a restaurant style version with subtle smoky flavors and creaminess of the lentils. If you are a fan of North Indian food and those lovely Punjabi flavors in your food, then you are going to love this makhani dal even more.
About Dal Makhani
Like I said in the beginning, the Dal Makhani is that quintessential Punjabi dish that you really can’t get enough of, ever. Once your palate gets a taste of it, its going to keep longing for more and more.
And why not? When whole black lentils and kidney beans are cooked in a spiced onion-tomato base, with generous amounts of butter and cream; the dish is bound to be decadent.
Yes, it is calorie laden too. But then, there’s no harm in consuming such bingeworthy food once a while. We all have our cheat days and I’m quite sure that this luscious, smooth and creamy Dal Makhani Recipe is a perfect fit for such days.
Also, after eating a meal of this rich dal, do not forget to burn those extra calories by exercising a bit more or running for a longer time!
Table of Contents
Now, you might be wondering what exactly is the origin of the Dal Makhani? According to food historians, the Dal Makhani Recipe is believed to be an invention of Punjabi Hindu migrants from Peshawar, named Kundan Lal Gujral and Kundan Lal Jaggi.
They are the ones who are associated with the invention of butter chicken too. The vegetarian makhani dal was created to complement this non-vegetarian dish.
Why This Recipe Works
Before I list out and explain to you the beauty of this recipe of Dal Makhani, let me tell you that it is one of our most reviewed recipes on the blog, even till the present day.
This dish never seems to get old! It has been made by many of our readers and they have absolutely loved and endorsed it. It also happens to be my most shared recipe on social media.
For this Dal Makhani Recipe, I have used a pressure cooker to cook the lentils, but I have also explained the method of cooking the dal in a pan or pot in the notes section of the recipe card.
I have also shared my Expert Tips and Frequently Asked Questions by our readers on this recipe, below. In the FAQ section, I have also shared the method of preparing the Dal Makhani in an Instant Pot.
So, here are all those essential elements that make this Dal Makhani Recipe, one of the best ones and a STAR:
The variety of aromatic whole spices that are used in this Dal Makhani Recipe, make it more flavorful. In my experimentation with this dish earlier, I remember making it without whole spices many times and hoping to get a restaurant-like flavor and texture in the lentils. But it never matched, and my experiments continued.
When we were residing in Goa, we used to have Dal Makhani in a restaurant (and it was one of their best dishes) at the quiet and serene Benaulim beach. I once found a black cardamom and clove in their version. I thought, maybe it is these spices that impart a lovely aroma and flavor in the dal.
Thereafter, I tried the makhani dal many times by adding whole spices and realized that they do actually add a good flavor and faint aroma to the dish. But I still felt, something was missing.
Butter & Cream
The answer to the above was cream and butter. These two ingredients made the whole difference in the Dal Makhani Recipe. Thus, I kept on experimenting and when I was also testing the recipe of Dal Bukhara, I realized it was the cream and butter bringing in the desired richness, apart from the slow cooking.
Dal Makhani is a rich dish, and the fats in the form of butter and cream help in achieving that richness. Many recipes do have a large quantity of these two ingredients added in it. However, in my recipe, the amount of butter and cream is just enough to lift the dish to the required richness.
You can make a Dal Makhani with even lesser quantities of butter and cream. Just remember to slow cook it for a longer period of time, to get the real deal sealed!
It is the gospel truth about the perfect Dal Makhani Recipe: The more you slow cook it, the better it tastes. Most Indian restaurants specializing in authentic North Indian food simmer their Dal Makhani overnight or for many hours.
Basically, it is the slow cooking of the lentils, which makes a world of difference to the consistency of the dish, on the whole. The lentils are slow cooked in a tandoor. The tandoor is a cylindrical shaped oven made of clay.
The fire in the tandoor comes from lit charcoal or wood. Overnight simmering of the Dal Makhani also brings in some smokiness in the dish, from the charcoal or wood.
In most Indian homes, you will not find tandoor. But you will easily find a stovetop pressure cooker. The fastest way to cook the lentils is in a pressure cooker. In this post, I have used a stovetop pressure cooker, but you can cook the dal in an Instant Pot too.
I have cooked the lentils and beans in a pressure cooker for about 30 minutes. Later, I have slow cooked them on low heat for 25 minutes.
You can slow cook for more time, than what I have done. It will only make the lentils viscous, creamy and the end result will be a finger-licking Dal Makhani Recipe.
For that restaurant style taste, smoky aroma and flavor is the key. As I have mentioned above, this smokiness in the makhani dal comes from slow simmering and cooking this dal on wooden or charcoal fires or embers.
To replicate this smoky flavor and aroma in the dish, I have 2 tried and tested methods for you:
- Charcoal Infused Smoke: This is also called as ‘dhungar’ in Hindi language. It is a charcoal smoking technique. It works fabulously for any recipe, where you need some smoky flavor. The Dal Makhani Recipe smoked with this method tastes exactly like the restaurant one. The dhungar smoking technique is optional and you can just skip, if you don’t have the charcoal.
- Use Smoked Paprika: Using smoked paprika is the easiest method and especially great when you cannot source the charcoal. Just replace the red chili powder in the recipe with smoked paprika. I have added smoked paprika so many times to my dal, to get that smoky flavor.
How to make Dal Makhani
Soak & Cook Lentils
1. Soak both ¾ cup whole black gram (whole urad dal) and ¼ cup kidney beans (rajma) overnight in enough water for 8 to 9 hours. Drain them well. The picture below shows the soaked whole urad dal and rajma.
2. Rinse the urad lentils and rajma a couple of times in water.
3. Drain well and add them in a 3-liter stovetop pressure cooker.
4. Add 3 cups water and stir well.
5. Pressure cook on high heat for 18 to 20 whistles or till both the black gram and kidney beans have cooked thoroughly and softened.
If they are undercooked, then add about ½ cup water again and pressure cook for 4 to 5 whistles more.
6. In the below picture, both the kidney beans and the black gram are cooked and softened well. The black gram or urad dal should melt-in-mouth and should not give any bite or resistance when eaten.
You can also just mash the urad dal with a spoon or with your fingers to check the doneness. The same rule applies for kidney beans too. Keep the cooked beans aside.
Remember that both the black gram and kidney beans have to be fresh. If they are old or close to their expiry, they take a lot of time to cook.
Make Tomato Puree
7. In a blender or mixer jar, take 2 large (200 grams) chopped tomatoes. No need to blanch the tomatoes.
8. Blend to a fine and smooth puree. Set aside.
You can also use 1 cup of canned tomato puree, instead of blending the fresh tomatoes.
Sauté Onion-Tomato Mixture
9. Now, in a pan, heat 3 tablespoons butter. Keep the heat to medium-low.
You have the option to use salted butter or unsalted butter.
10. Add the below listed whole spices and fry them until they splutter and turn fragrant.
- ½ teaspoon cumin seeds
- 2 to 3 cloves
- 2 to 3 green cardamoms
- 1 black cardamom
- 1 inch cinnamon
- 1 small to medium tej patta (Indian bay leaf)
11. Then, add ½ cup finely chopped onions.
12. Sauté the onions on low to medium-low heat, stirring often.
13. Sauté the onions until they turn light golden.
14. Next, add 2 teaspoons ginger-garlic paste. Stir to mix and sauté until the raw aroma of ginger-garlic dissipates.
15. Add 1 teaspoon chopped green chilies and sauté for a minute.
16. Add the prepared tomato puree.
17. Mix again thoroughly.
18. Add ½ teaspoon red chili powder.
19. Next, add about 2 to 3 pinches of grated nutmeg or nutmeg powder.
20. Mix very well and sauté this mixture on a low to medium heat, till you see fat releasing from the sides.
This sautéing process takes about 3 to 4 minutes on a medium-low to medium heat.
Make Dal Makhani
21. Add the cooked lentils and kidney beans.
22. Add all of the stock or broth in which the lentils and kidney beans were cooked. Additionally add 1 cup water or as needed.
23. Mix very well and simmer or slow-cook the dal uncovered on low heat.
24. Keep stirring often, so that the lentils don’t get stuck to the bottom of the pan. The lentils become viscous and start to stick at the bottom, if not stirred. Mash a few lentils too, while stirring.
25. Once the Dal Makhani has begun to thicken, add salt as required.
26. Mix very well and continue to simmer on low heat. Keep stirring while the lentils are simmered on low heat. When simmering, you can add more water if the consistency looks thick or dry.
The longer you keep to simmer, the better it tastes. The lentils become creamy, viscous and the consistency of the dal will keep on thickening as you simmer.
I kept for about an overall 25 minutes on low heat. Keep stirring at intervals.
27. When the gravy has thickened enough, add ¼ to ⅓ cup of light cream or half and half. If using heavy cream, then add 2 tablespoons of it.
The consistency of Punjabi Dal Makhani is neither too thick or too thin. It has a medium consistency with a viscosity coming from the thoroughly cooked lentils.
28. Mix the cream very well. Then, turn off the heat.
29. Next, add ¼ teaspoon crushed dry fenugreek keaves (kasuri methi). Stir again.
Cover and set aside, if you are proceeding to the dhungar method. Or else you can serve Dal Makhani straightaway.
Charcoal Smoking or Dhungar Method (Optional)
30. Turn on the stovetop and set the flame to low or medium-low. Position a flame-proof wire rack with a handle on the stovetop. I use a round metal rack as shown in the photo below.
Place a small piece of charcoal on this rack and heat it on the direct flame until it becomes red hot. With the help of steel tongs, keep on turning the charcoal piece so that it evenly burns.
Exercise caution during this process, and if unsure, consider omitting this step altogether.
31. Keep the red hot charcoal in a small steel bowl.
32. Pour ½ to ⅔ teaspoon oil on the charcoal. The hot piece of charcoal would begin to smoke as soon as you pour oil on it.
33. Immediately, keep this bowl on top of the dal.
34. Cover tightly with a lid for one minute and allow the charcoal to infuse its smoke in the Dal Makhani. I usually keep for one minute.
35. Stir again. Serve Punjabi Dal Makhani garnished with chopped coriander leaves and a few teaspoons of light cream or whipping cream.
Serving & Storage
Choose to pair this restaurant style Dal Makhani with Indian flatbreads like Naan, Tandoori Roti, Paratha, Chapati, Aloo Paratha. If serving with rice, serve with plain steamed basmati rice or savory Jeera Rice.
Dal Makhani keeps well in the refrigerator for 1 to 2 days. Reheat while serving and add water, if the consistency looks very thick. Add a few dollops of cream and butter while serving.
- Freshness of lentils: Beans and legumes should be fresh and not aged. Beans which are too old or beyond their expiry date (shelf-life) will take a lot of time to cook and perhaps not cook well enough to give a melt-in-mouth texture as well. Undercooked beans upset the stomach too.
- Soaking: For any kind of dried whole beans or dried peas, it always helps to soak them overnight or for 8 to 9 hours. Soaking beans reduces the phytic acid which causes indigestion and flatulence, thereby making them more digestible. Soaking also helps the beans to cook faster.
- Rinsing: Before cooking, rinse the soaked beans in water a couple of times. Then, drain all the water and cook the beans with fresh water. Doing this also reduces the phytic acid.
- Cooking: When you soak beans and lentils, the cooking time considerably reduces by 25%. You can then cook the soaked beans in a pan, pressure cooker or Instant Pot.
- Tomatoes: Tomatoes are an important ingredient in this recipe. You can use canned tomatoes too or packaged tomato puree (1 cup). For fresh tomatoes, choose the sweet and ripe variety. Do not add highly sour or tart tomatoes.
- Charcoal Smoking Method: The charcoal smoking method can be skipped too, if you do not have charcoal. If you have smoked paprika, then use it in place of red chili powder in the recipe to get a faint smokiness in the dish.
- Vegan Options: To make vegan dal makhani, use a neutral tasting oil or a plant based butter. Swap the cream with plant based cream like cashew cream or almond cream. Keep in mind that including coconut cream will infuse coconut flavors to the lentil dish.
1. Can we cook the lentils in a pot or pan?
Yes, you can cook lentils in a pot or pan on the stovetop. Cooking them in a pan will take about 45 minutes to 1 hour or more. Soak lentils overnight and then cook them covered with enough water in a deep pot. Add a few drops of butter or oil, so that the water does not froth much while boiling the lentils.
2. What can I substitute whole urad dal with?
You can use split urad dal with husks. You can also use beluga lentils (black lentils), whole red lentils (masoor dal) and whole moong lentils. The taste with all these lentils will be different. The closest taste you can get is with split urad dal with their black skins.
3. Can I make this recipe without onion and garlic?
Yes, you can easily make Dal Makhani Recipe without onion and garlic. You just need to add a generous pinch of asafoetida (hing), after the whole spices crackle and before adding ginger paste.
4. How can I make this recipe in the Instant Pot?
Melt the butter using the sauté mode of the Instant Pot. Add the whole spices and let them crackle. Then, add the onions and sauté till light golden. Next, add the ginger-garlic paste and sauté for a few seconds.
Add the tomato puree and sauté for 3 to 4 minutes. Now, add red chili powder and nutmeg powder. Stir and mix. Add the lentils and 2.5 cups water.
Pressure cook on high for 30 minutes. Wait for natural release. Lift the valve and remove the lid. Use the sauté option and simmer till the consistency thickens.
Mash a few lentils with a spoon, while stirring. Keep stirring, so that the lentils do not stick to the pot. Lastly, add the cream and crushed dried fenugreek leaves (kasuri methi).
5. What can be used instead of charcoal or smoked paprika for the smoky flavor?
One of our readers had given this suggestion. If you can get access to dried Mexican peppers, then try getting Morita peppers. They are similar to chipotles that are smoked jalapeño peppers, but these are smoked with a different method that leaves them with a fresh charcoal flavor.
As a bonus, since they are less harshly dried, it leaves them with a nice fruity pepper flavor that blends very well with the tomatoes.
More Questions Answered
You can use any neutral tasting oil. Or even use sunflower oil, safflower oil or peanut oil. You can even add ghee (clarified butter).
Low-fat cream has 25% fat content. If you live in the United States, you can use light cream or half and half. You can also add 2 tablespoons of heavy whipping cream.
No, you can skip it easily.
Garam masala powder is not required in this recipe as the whole spices give it a really good flavor. But if you do not want to use whole spices, add about ½ teaspoon of garam masala powder at the step when kasuri methi is added.
There is absolutely no need to crush them. You can add them whole. If you crush them, the crushed black cardamom will give a strong aroma in the dal.
You can soak the lentils for 2 hours, but soak them in very hot water. You can soak the lentils in warm or medium hot water for 3 to 4 hours. The cooking time will be more, if the lentils are aged.
Yes, of course. You can scale and make a large batch of the recipe.
Cream balances the earthy flavor of the lentils and the tanginess of the tomatoes. It also gives a rich taste. So, to get a restaurant style flavor and feel, cream needs to be added. But you can skip the cream, if you do not have it.
You can use curd, but just add about 2 tablespoons of whole milk yogurt.
This dal stays good in the refrigerator for 1 to 2 days. You can freeze it for 1 to 2 weeks. Reheat while serving and add water, if the consistency looks very thick. Add cream and butter while serving.
Dal (Lentils) & Legumes
Dal (Lentils) & Legumes
Dal (Lentils) & Legumes
Please be sure to rate the recipe in the recipe card or leave a comment below if you have made it. For more vegetarian inspirations, Sign Up for my emails or follow me on Instagram, Youtube, Facebook, Pinterest or Twitter.
Dal Makhani Recipe (Authentic Punjabi Style)
- ¾ cup whole urad dal – 140 grams (whole black gram)
- ¼ cup rajma – 40 grams (kidney beans)
- 3 cups water for pressure cooking
- ½ cup finely chopped onions – 50 grams
- 1 teaspoon chopped green chilies or serrano peppers or 1 to 2 green chillies
- 2 teaspoons Ginger Garlic Paste or 6 to 7 small to medium-sized peeled garlic + 1 inch peeled ginger – crushed to a paste in mortar-pestle
- 2 large tomatoes – 200 grams, pureed or 1 cup tomato puree
- ½ teaspoon cumin seeds
- 2 to 3 cloves
- 2 to 3 green cardamoms
- 1 black cardamom
- 1 inch cinnamon
- 1 small to medium tej patta (Indian bay leaf)
- ½ teaspoon red chili powder or cayenne pepper or smoked paprika
- 2 to 3 pinches grated nutmeg or ground nutmeg powder
- 1 cup water or add as required
- ¼ to ⅓ cup light cream (25% to 30% fat) or half & half or 2 tablespoons whipping or heavy cream
- ¼ teaspoon dry fenugreek leaves – crushed, (kasuri methi), optional
- 3 tablespoons Butter – salted or unsalted
- salt as required
For dhungar method (optional)
- 1 small piece of charcoal
- ½ to ⅔ teaspoon oil – any neutral tasting oil
- 1 to 2 tablespoons chopped coriander leaves (cilantro)
- 1 tablespoon light cream (25% to 30% fat) or few teaspoons of whipping cream – optional
- 1 inch ginger julienne – optional
- Soak both the whole urad dal and rajma overnight in enough water for 8 to 9 hours or overnight. Later drain them well.
- Rinse both the lentils a couple of times in water.
- Drain again and then add them in a 3 litre pressure cooker. Add water and stir well.
- Pressure cook for 18 to 20 whistles on a high flame, till both the urad dal and rajma have cooked thoroughly and softened. If they are undercooked, then add about ½ cup water again and pressure cook for 4 to 5 whistles more.
- The urad dal should melt in the mouth and should not give any bite or resistance when eaten. You can also just mash the urad dal with a spoon or with your fingers to check the doneness. The same rule applies for kidney beans too. Keep the cooked lentils and beans aside.
- In a blender or mixer jar, take chopped tomatoes and blend to a fine and smooth puree. Set aside.
- You can also add ready 1 cup tomato puree instead of blending the tomatoes. No need to blanch the tomatoes while pureeing.
Making dal makhani
- In a pan, now heat butter. Keep heat to medium-low.
- Add the whole spices – cumin seeds, cloves, green cardamoms, black cardamom, cinnamon and tej patta.
- Fry for some seconds till the spices sputter and become aromatic.
- Add finely chopped onions.
- Stir and sauté the onions on a low or medium-low heat often till they become light golden.
- Add the ginger garlic paste. Stir again and sauté for some seconds till the raw aroma of ginger-garlic goes away.
- Add the chopped green chilies and sauté for a minute.
- Add the prepared tomato puree and mix well.
- Add red chili powder and 2 to 3 pinches of grated nutmeg or nutmeg powder.
- Mix very well and sauté this mixture on a low to medium flame, till you see fat releasing from the sides.
- Add the cooked lentils and kidney beans together with the stock. Also add 1 cup water or as needed.
- Mix very well and simmer the dal makhani uncovered on a low heat.
- Keep on stirring often, so that the lentils don’t stuck to the bottom of the pan.
- Once it has begun to thicken, add salt as required.
- Stir very well and continue to simmer on a low heat. Keep on stirring when the lentils are simmering on low heat.
- When simmering you can add more water if the consistency looks thick or dry. The longer you keep dal makhani to simmer, the better it tastes.
- I kept it for about an overall 25 minutes on a low heat. Do keep on stirring at intervals.
- When the consistency has thickened enough, add cream. Dal makhani is not too thick or too thin. It has a medium consistency.
- Mix the cream very well. Then turn off the heat.
- Add crushed dried fenugreek leaves (kasuri methi and mix again.
- Cover with a lid and set the Dal Makhani aside, if you are proceeding to the dhungar method. Or else you can serve Dal Makhani straightaway.
Dhungar method (optional)
- Turn on the stovetop and set the flame to low or medium-low heat. Place a flameproof wire rack with a handle on the stove. I typically use a round metal rack as shown in the step-by-step image above.
- Keep a small piece of charcoal on the rack and heat it directly over the flame until it becomes hot. Use steel tongs to rotate the charcoal, ensuring it burns evenly.Be cautious while doing this, and if you're unsure, it's okay to skip this step altogether.
- Keep the red hot charcoal in a small bowl.
- Pour ½ teaspoon oil on the hot charcoal.
- Immediately keep this bowl on top of the dal makhani.
- Cover for a minute and allow the charcoal to infuse its smoke in the dal makhni. Remove the bowl. Stir again.
- Serve Punjabi Dal Makhani garnished with chopped coriander leaves (cilantro) and a few teaspoons of cream with naan, roti, paratha or steamed rice.
- Cooking in pot or pan: Add the the soaked black gram, kidney beans and 3 to 4 cups water in a large pot. Cover and cook on medium heat till the lentils and beans soften. Add water as needed. If cooking the beans in a pot, it may take from 45 minutes to 1 hour.
- Soaking: It is always better to soak beans overnight or for 8 to 9 hours. Soaking reduces the phytic acid in them which causes indigestion and flatulence. Soaking also helps the beans to cook faster.
- Rinsing: Before cooking, rinse the soaked beans in water a couple of times. Then drain all the water and cook the beans with fresh water.
- Cooking: When you soaking beans and lentils the cooking time considerably reduces by 25%. You can then cook the soaked beans in a pan or in a pressure cooker or instant pot.
- Freshness: Beans & legumes should be fresh and not aged. Beans which are too old or beyond their expiry date (shelf-life) will take a more time to cook and may not cook well enough to give a melt in the mouth texture. Undercooked beans upset the stomach too.
- Tomatoes: Tomatoes are an important ingredient in this recipe. You could use canned tomatoes too or packaged tomato puree (1 cup). For fresh tomatoes, choose the sweet and ripe variety. Do not add highly sour or tart tomatoes.
- Vegan Swaps: To make vegan dal makhani, either use a neutral tasting oil or a plant based butter. Opt to include plant based cream like cashew cream or almond cream or omit adding any cream. Remember that using coconut cream will infuse coconut flavors in the dish.
- Charcoal Smoking Method: The smoking method can be skipped too if you do not have charcoal. If you have smoked paprika, then use it in place of red chilli powder in the recipe to give a faint smoky flavor in the dish.
- Lentils: Use split urad dal with the husks or beluga lentils (black lentils), whole red lentils (masoor dal) and whole moong lentils. The taste with all these lentils will be different and the cooking time will also change.
- Whole Spices: Substitute whole spices with ½ teaspoon of garam masala powder. Add garam masala powder at the step when kasuri methi (dried methi leaves) are added. Add ½ teaspoon curry powder if you do not have garam masala.
- Fresh tomatoes: Use canned tomatoes or packaged tomato puree (1 cup) in place of fresh tomatoes. You may need to add some more water as packaged tomato puree is usually thick.
- Light or low fat cream: Use half and half. If using whipping cream or heavy cream, add 2 tablespoons of it.
- Dried fenugreek leaves: Omit these if you do not have or are not able to source them.
- Charcoal: Use smoked paprika or morita peppers which are smoked jalapeno peppers. These are smoked with a different method that leaves them with a fresh charcoal flavor.
Nutrition Info (Approximate Values)
This Dal Makhani Recipe from the archives was first published in January 2015. It has been updated and republished in February 2024.