This Restaurant style Dal Makhani is a classic Punjabi is a rich and creamy Punjabi classic made with whole black lentils (sabut urad dal) and kidney beans (rajma), cooked in a spicy, flavorful onion-tomato gravy along with Indian spices in an Instant Pot pressure cooker. It is best enjoyed with basmati rice or flatbreads like roti, or naan.

Punjabi-style Dal Makhani, along with paneer butter masala, palak paneer, and aloo gobi is one of the most popular dishes served in Indian restaurants. It is a staple in buffets or can be ordered separately. It is traditionally served with jeera rice, plain basmati rice, or parathas.
Traditional Dal Makhani is made by pressure-cooking whole urad dal and rajma, then adding them to a flavorful gravy of onions, ginger, garlic, tomatoes, and Indian spices. The dal is slow-cooked or simmered for hours, then finished with a rich topping of cream and/or butter.
Today, I am sharing both one-pot dal makhani made in the instant pot pressure cooker and stovetop versions below.
Jump to:
What is Dal Makhani?
Dal Makhani or Dal Makhni (pronounced daal makh-nee) literally means "buttery lentils". Dal means lentils, and makhani means buttery. It originated from the Punjab region of the Indian subcontinent. The primary ingredients are whole black lentils (urad), red kidney beans (rajma), butter, and cream.
The dish gets its richness from cream or butter, but it can also be prepared with yogurt, milk, or without dairy. - Source Wiki
Ingredients
You will need the following ingredients to make the dal makhani recipe.
- Lentils: You will need Black whole urad dal (Whole black gram lentils) and Rajma (Kidney Beans) to make this recipe. These lentils are easily available in Indian grocery stores or on Amazon.
- Ginger and Garlic: I used freshly prepared homemade ginger-garlic paste. You can also use minced ginger and garlic.
- Onion: I used finely chopped red onions.
- Tomatoes: I used ripened Roma tomatoes and pureed them to make the base for this curry. You can also finely chop the tomatoes and use them. Canned tomato sauce or crushed tomatoes also work very well.
- Spices & Herbs: I used cumin seeds, bay leaf, turmeric powder, red chili powder, coriander powder, garam masala for spices, and coriander leaves, kasoori methi for herbs.
- Butter & Cream: Fats from the butter and cream enhance the taste and richness of the dal makhani. So, do not compromise on adding these ingredients.
How to Make Dal Makhani in Instant Pot
Soak 1 cup of black gram lentils (whole urad dal) and ¼ cup of red kidney beans (rajma) for at least 4+ hours in hot water or overnight in 3 cups of water.
Press SAUTE on Instant Pot. Heat 2 tablespoons of butter (or oil), then add whole spices like 1 teaspoon cumin seeds, 1 bay leaf, 1 inch cinnamon stick, 2 cardamoms, and 3 cloves. Saute for a few seconds until fragrant.
Then add 1 medium onion (finely chopped) and saute for 3-4 minutes or until onions turn light brown.
Add 1 tablespoon ginger garlic paste and saute till the raw smell of the ginger-garlic goes away.
Then add 1 cup pureed tomatoes (or finely chopped tomatoes). Cook for 2-3 minutes, or till the mixture thickens.
Add spices like 1 teaspoon red chili powder, ½ teaspoon turmeric powder, 1 teaspoon coriander powder, ½ teaspoon garam masala, and salt. Mix well. Cook the masala until the oil oozes out from the sides.
Next, add the soaked black gram lentils (black urad dal), kidney beans (rajma), and 3 cups of water for cooking. Mix well.
Also, Deglaze the pot, i.e., make sure there are no food particles sticking to the pot to avoid BURN alerts.
Furthermore, close the lid on the pot, and turn the pressure valve to the SEALING position. Set the pot to "BEAN/CHILI" Mode and set the timer to 30 minutes.
Once the pot beeps, do a NATURAL PRESSURE RELEASE (NPR).
Remove the lid away from you. Set to the SAUTE mode. The dal and rajma should be thoroughly cooked. Mash the lentils and rajma with the back of a spoon or ladle for a thick and creamier consistency.
Crush 2 teaspoons kasuri methi between your palms and add to the gravy along with 1 tablespoon butter and ¼ cup heavy cream. Mix well and simmer the curry for another 10 minutes or until you get the desired consistency.
Don't worry if the curry is liquid by consistency. It will thicken as it cools down.
Instant Pot Punjabi dal makhani recipe is ready. Garnish with coriander leaves and serve hot with naan, jeera rice, and basmati rice.
Stovetop Pot Method
Pressure cook the soaked whole urad dal and rajma with 3 cups of water and a little salt in the traditional stovetop pressure cooker (or Instant Pot).
- Instant Pot: Pressure cook on Manual (High Pressure) for 30 minutes with natural pressure release.
- Stovetop Pressure Cooker: Pressure cook on high heat for 10 whistles, then reduce to low and cook for 10 minutes. So that's around 15 whistles in total. Wait for natural pressure release.
Note: The cooked black urad dal and rajma beans should be soft and easily mashed when pressed between the finger and thumb. Set aside.
Heat 2 tablespoons of butter (or oil), in a large pan (or Dutch oven). Add whole spices like cumin seeds, bay leaf, cinnamon, cardamom, and cloves. Saute for a few seconds until fragrant.
Then add onions and saute for 3-4 minutes or until onions turn light brown. Add ginger garlic paste and saute till the raw smell of the ginger-garlic goes away.
Then add 1 cup pureed tomatoes (or finely chopped tomatoes). Cook for 2-3 minutes or till the mixture thickens.
Add spices like red chili powder, turmeric powder, coriander powder, garam masala, and salt. Mix well. Cook the masala until the oil oozes out from the sides.
Next, add the cooked black gram lentils and rajma, along with the stock in which the beans were cooked and 1 cup of water (or as required).
Mix very well and simmer the dal uncovered for 25-30 minutes on low heat. The longer this dal simmers, the more creamy it gets and tastes better. Stir regularly so the dal doesn't stick to the bottom of the pan. You will also need to add water while the dal is simmering.
While stirring, mash a few lentils with a spoon or ladle for a thick and creamier consistency.
After the dal has simmered for 30 minutes, Crush some kasuri methi between your palms and add to the gravy along with butter and heavy cream. Mix well and simmer the curry for another 10 minutes or until you get the desired consistency. Punjabi Dal Makhani recipe is ready.
What to Serve with Dal Makhani?
Dal Makhani pairs extremely well with Indian flatbreads like naan, tandoori roti, paratha, or plain roti.
You can also serve it with jeera rice, or plain basmati rice, along with kachumber salad and mango lassi to make it a complete meal. I like eating with jeera rice.
Storage Suggestions
- Make-ahead: You can make a day ahead and store it in an airtight container until you are ready to serve.
- Store: Store leftover dal makhani in an airtight container for up to 3 days in the refrigerator.
- Freeze: Allow the dal to cool completely and then freeze it in freezer-safe containers or Ziploc bags for up to 2 months.
- Reheat: Reheat the curry in a microwave or stovetop until warm, and serve. If it's frozen, thaw for a few hours first and then reheat.
Tips to Make the Best Dal Makhani Recipe
- Use a combination of lentils: Traditionally, Dal Makhani is made with a combination of whole black lentils (urad dal) and kidney beans (rajma). This combination makes the dish rich and creamy texture.
- Soaking the legumes overnight: Soaking legumes like whole black lentils and kidney beans, is an important step. Soaking legumes not only softens the texture, and quickens the cooking process, but it also makes the lentils easier to digest by removing phytic acid.
- Don't skimp on butter and cream: These are some of the main components that add taste and richness to the dish.
- Cook on low heat: Cooking it on low heat for a longer time enhances the flavors, making the dish creamy and tasty. If you are using Instant Pot, pressure cook for 30 minutes and simmer the dal for another 20-30 minutes.
Variations & Substitutions
- Whole Spices: Using whole spices like bay leaf, cardamom, cloves, and cinnamon adds a great flavor to the dish. If you don't have, skip them.
- Canned Lentils & Beans: If using canned black lentils and kidney beans, Pressure cook for 5 minutes in Instant Pot, followed by natural pressure release. Or 2 whistles if using a stovetop Indian pressure cooker. Adjust water appropriately, as it takes less water to cook canned lentils & beans.
- Use store-bought tomato puree: If you don't have time to make tomato puree at home, then use store-bought canned tomato puree (or tomato sauce).
- Vegan Dal Makhani: use cashew cream or coconut cream in place of heavy cream. Also, substitute butter with plant-based butter or oil.
Recipe FAQs
Traditionally, whole black lentils (sabut urad dal) and red kidney beans (rajma) are used to make dal makhani.
Follow the same steps, turn on SLOW COOK mode, select 8 hours, and leave it aside. Do this at night, and you will have perfect Dal Makhani cooking away, ready for lunch.
This lentil curry takes at least 30 minutes to pressure cook, so you can cook this beans curry along with only brown rice, using the Pot-in-Pot method, all in the same pot.
Yes, you can, Soaking helps cook these lentils faster, and I recommend soaking the beans overnight.
If you do not have time to soak the beans & lentils, then increase the cooking time to 60 minutes.
1. Replacing butter with vegan butter or oil.
2. Use cashew cream or coconut cream instead of heavy or fresh cream
Using a substitute for whole black urad will alter the flavor and texture of the dish. Split urad dal (with skin) is the closest substitute to whole black urad.
Skip adding onion and garlic and follow the same recipe to make jain-friendly dal makhani.
More Instant Pot Indian Lentil Recipes
Instant Pot Dal Makhani
Ingredients
- 1 cup black whole urad dal (whole black gram lentils)
- ¼ cup rajma (kidney beans)
- 3 tablespoons butter divided
- 1 tablespoon ginger garlic paste
- 1 medium onion finely chopped, (about 1 cup)
- 2 large tomatoes diced or pureed (about 1 cup tomato puree)
- 3 cups water for cooking
- salt to taste
- ¼ cup heavy cream (or cashew cream, coconut cream)
- 2 teaspoons kasuri methi (dried fenugreek leaves) optional
Spices:
- ½ teaspoon turmeric powder
- 1 teaspoon red chilli powder
- 1 teaspoon coriander powder
- ½ teaspoon garam masala powder
Whole Spices
- 1 bay leaf
- 1 teaspoon cumin seeds
- 3 cloves
- 1 inch cinnamon
- 2 cardamom
- 1 black cardamom optional
For Garnish:
- 2 tablespoons coriander leaves (cilantro)
- heavy cream as needed
Instructions
Soaking the Lentils
- Soak black gram lentils (urad dal) and red kidney beans (rajma) for at least 4+ hours in hot water or overnight in 3 cups of water.
Instant Pot Method:
- Press SAUTE on Instant Pot. Heat 2 tablespoons of butter (or oil), then add whole spices like cumin seeds, bay leaf, cinnamon, cardamom and cloves. Saute for few seconds until fragrant.
- Then add onions and saute for 3-4 minutes or until onions turn light brown.
- Add ginger garlic paste and saute till the raw smell of the ginger-garlic goes away.
- Then add 1 cup pureed tomatoes or finely chopped tomatoes. Cook for 2-3 minutes, or till the mixture thickens.
- Add spices like red chili powder, turmeric powder, coriander powder, garam masala and salt. Mix well. Cook the masala until the oil oozes out from the sides.
- Next, add the soaked black gram lentils (black urad dal), kidney beans (rajma), and water for cooking. Mix well.Also Deglaze the pot, i.e., make sure there is no food particle sticking to the pot to avoid BURN alerts.
- Furthermore, close the lid on the pot, and turn the pressure valve to the SEALING position. Set the pot to "BEAN/CHILI" Mode and set the timer to 30 minutes.Once the pot beeps, do a NATURAL PRESSURE RELEASE (NPR).
- Remove the lid away from you. Set to the SAUTE mode. The dal and rajma should be thoroughly cooked. Mash the lentils and rajma with the back of a spoon or ladle for a thick and creamier consistency.
- Crush some kasuri methi between your palms and add to the gravy along with butter and heavy cream. Mix well and simmer the curry for another 10 minutes or until you get desired consistency.Don't worry if the curry is liquid by consistency. It will thicken as it cools down.
- Instant Pot Restaurant Style Punjabi Dal Makhani (Madras Lentils) recipe is ready. Garnish with coriander leaves and serve hot with naan & jeera rice, and basmati rice.
Stovetop Pot Method
- Pressure cook the soaked whole urad dal (black gram lentils) & rajma (kidney beans) with 3 cups of water and a little salt in the traditional stovetop pressure cooker (or Instant Pot).Instant Pot: Pressure cook on Manual (High Pressure) for 30 minutes with natural pressure release.Stovetop Pressure Cooker: Pressure cook on high heat for 10 whistles and then reduce to low and cook for 10 minutes. So thats around 15 to 20 whistles in total. Wait for natural pressure release.Note: The cooked black urad dal & rajma beans should be soft and easily mashed when pressed between the finger and thumb. Set aside.
- Heat 2 tablespoons of butter (or oil), in a large pan (or dutch oven). Add whole spices like cumin seeds, bay leaf, cinnamon, cardamom, and cloves. Saute for a few seconds until fragrant.
- Then add onions and saute for 3-4 minutes or until onions turn light brown.
- Add ginger garlic paste and saute till the raw smell of the ginger-garlic goes away.
- Then add 1 cup pureed tomatoes (or finely chopped tomatoes). Cook for 2-3 minutes, or till the mixture thickens.
- Add spices like red chili powder, turmeric powder, coriander powder, garam masala, and salt. Mix well. Cook the masala until the oil oozes out from the sides.
- Next, add the cooked black gram lentils (black urad dal), kidney beans (rajma), along with the stock in which beans were cooked and 1 cup of water (or as required).
- Mix very well and simmer the dal uncovered for 25-30 minutes on low heat. The longer this dal simmers, the more creamy it gets and tastes better. Stir at regular intervals so that the dal doesn't stick to the bottom of the pan. You will also need to add water while the dal is simmering.
- While stirring, mash a few lentils with the back of a spoon or ladle for a thick and creamier consistency.
- After the dal has simmered for 30 minutes, Crush some kasuri methi between your palms and add to the gravy along with butter and heavy cream. Mix well and simmer the curry for another 10 minutes or until you get desired consistency.Punjabi Dal Makhani recipe is ready. Garnish with coriander leaves and serve hot with naan & jeera rice, and basmati rice.
Notes
Tips to Make the Best Dal Makhani
- Use a combination of lentils: Traditionally, Dal Makhani is made with a combination of whole black lentils (urad dal) and kidney beans (rajma). This combination makes the dish rich and creamy texture.
- Soaking the legumes overnight: Soaking legumes like whole black lentils and kidney beans, is an important step. Soaking legumes not only softens the texture, and quickens the cooking process, but it also makes the lentils easier to digest by removing phytic acid.
- Don't skimp on butter and cream: These are one of the main components that add taste and richness to the dish.
- Cook on low heat: Dal Makhani tastes the best when it is cooked on low heat for a longer time, as the flavors sink in making the dish creamy and tasty. If you are using Instant Pot, pressure cook for 30 minutes and simmer the dal for another 20-30 minutes.
Variations & Substitutions
- Whole Spices: Using whole spices like bay leaf, cardamom, cloves, and cinnamon adds a great flavor to the dish. If you don't have, skip them.
- Canned Lentils & Beans: If using canned black lentils and kidney beans, Pressure cook for 5 minutes in Instant Pot, followed by natural pressure release. Or 2 whistles if using a stovetop Indian pressure cooker. Adjust water appropriately, as it takes less water to cook canned lentils & beans.
- Use store-bought tomato puree: If you don't have time to make tomato puree at home, then use store-bought canned tomato puree (or tomato sauce).
- Vegan Dal Makhani: use cashew cream or coconut cream in place of heavy cream. Also, substitute butter with plant-based butter or oil.
Nutrition
★ Like this recipe? FOLLOW ME on Facebook, Instagram, Pinterest, and Youtube for more quick & easy recipes.
Mel
Looks delicious! How can I make this on the stove top? I do not have a presser cooker.
Thanks,
Mel
Bhavana Patil
Hi Mel, You can cover and cook lentils/beans for an hour till the beans can be easily smashed between your fingers.Then follow the same procedure by preparing onion tomato gravy with some indian spices and add the cooked lentils to the mixture.Will update the blog with stove top instructions soon..