There’s something truly magical about Dal Makhani—the rich, buttery, slow-cooked lentil dish from North India. It is made with whole black lentils (urad dal) and kidney beans (rajma), simmered in a velvety tomato-based gravy and finished with cream and butter. Learn to make restaurant-style Dal Makhani with my mom’s authentic recipe and tips to get the best creamy dal.

There’s nothing like a warm bowl of dal makhani to bring comfort and happiness. Growing up, this rich and creamy dal was a special treat at home. I still remember the delicious smell filling the kitchen and how excited we were to eat it with soft, buttery tandoori roti.
For everyday meals, mom would make simple, quick-cooking lentils, such as Dal Tadka or Moong Dal. Dal Makhani is usually saved for special dinners or celebrations, which I really waited for. Even now, it’s one of my favorite dishes to cook and enjoy, bringing back those happy memories with every bite. And I am happy that my girls enjoy this dal makhani just as much.
If you want a quick version of dal makhani, I also have a delicious Instant Pot Dal Makhani recipe that gives you the same rich flavors with less effort!
Table of Contents
What is Dal Makhani?
Dal Makhani is a classic Punjabi dish. It is also referred to as black dal, kali dal, or maa ki dal.
The name “makhani” means buttery, and true to its name, this dal is cooked with butter and cream, making it incredibly rich and delicious.
The key ingredient in dal makhani is black gram lentils (sabut urad dal). Red kidney beans (rajma) are added for texture and flavor. Some people also like to add chana dal for an even creamier consistency.
The lentils and kidney beans are slow-cooked with aromatics, tomatoes, and spices for a long time, which gives this dal a creamy consistency. We also add a generous amount of butter and cream to give this dal its signature taste. The final touch is the smoky flavor added with the dhungar method (more details below).

Ingredients
Even though the list of ingredients for this dal may seem long, they might all be easily available in your kitchen or you can find them at any Indian grocery store.
- Black Gram Lentils: The star ingredient that gives dal makhani its creamy texture and rich taste. You can find them at Indian grocery stores or on Amazon. Note that they are not the same as black beluga lentils.
- Red Kidney Beans: Add a hearty bite and texture to the dal.
- Ghee: Ghee adds a rich, buttery flavor, but you can use oil for a dairy-free or vegan version.
- Butter: Adds a luxurious, creamy taste to the dal. Use vegan butter for a dairy-free version.
- Aromatics: Yellow onions form the base of the masala and add a mild sweetness. Freshly grated ginger and minced garlic add warmth, zest, and savory depth.
- Green Chili Pepper: Brings a subtle heat and fresh flavor.
- Whole Spices: We will add bay leaf, black cardamom, cumin seeds, carom seeds, and asafoetida. The carom seeds and asafoetida are beneficial as they help in digestion for this dal.
- Spices: This dal uses minimal spices to let the flavors of the lentils shine. You’ll need Kashmiri red chili powder, garam masala, and salt.
- Tomato Puree: I recommend using store-bought tomato puree for the dal’s rich color and velvety texture. However, if you can’t get it, you can puree tomatoes at home to a smooth sauce.
- Cream: Gives the signature creaminess; use dairy-free alternatives such as coconut milk or cashew cream for a vegan version.
- Cilantro: For garnishing.

How to Make Dal Makhani?
Start with rinsing the dal and beans under tap water several times. Then soak them overnight in a bowl with ample water. Soaking for at least 8 hours or overnight is best.
Pro-tip: In case you forget soaking and still want to make this dal, you can soak it in boiling hot water for an hour.
Once the soaking time is over, drain the water.

Pressure Cook the Dal
Transfer the dal and kidney beans to a pressure cooker. Add salt, bay leaf, black cardamom, ajwain, and water.

Pressure cook for 3 whistles on high heat, then cook on low heat for 15 minutes. (For Instant Pot, pressure cook for 22 minutes.)
Let the pressure release naturally, and mash some of the dal for a creamy texture.
Cooking Without a Pressure Cooker: You can still make this dal without a pressure cooker. Add the dal and beans to a large saucepan, cover with ample water, and add the salt, bay leaf, black cardamom, and carom seeds. Boil for 10 minutes on high heat, then reduce the heat to low and simmer for about 70-80 minutes until the dal is very soft and can be mashed easily.

Prepare the Tempering
Heat a large pan over medium-high heat. Add butter and ghee to the pan. Then, add cumin seeds and let them sizzle.
Add finely diced onions and cook until it softens and turns golden.

Add in ginger and garlic and saute for a minute until the raw smell is gone.
Then add the tomato puree. Stir and cook it well until the oil separates.

Add the boiled dal, Kashmiri red chili powder, and garam masala.

Now add water and stir it all well.

Bring the dal to a boil on medium-high heat. Then lower the heat and simmer for 30-40 minutes while stirring occasionally.
If the dal looks too thick, add boiled water to adjust the consistency.
For the final creaminess, stir in butter and cream (or vegan alternatives) and simmer the dal for another 5 minutes.
The dal makhani is ready and can be enjoyed as is or add the smoky touch as shown below.

How to Infuse Smoky Flavor in Dal Makhani?
Traditionally, dal makhani is cooked over an open flame, which gives it a smoky flavor. However, we are cooking it on a stovetop. But you can still add that smoky flavor with this dhungar method. I also use this method in other recipes such as dal tadka.
Heat a piece of charcoal over an open flame until red hot.

Place a trivet and a small steel bowl on top of the dal. Transfer the hot charcoal to the bowl and pour 1 teaspoon of oil on it. Immediately cover the pan and let it sit for 5-7 minutes. Don’t keep it for too long, as it can become too smokey.

Remove the bowl with the charcoal and mix the dal well.
Garnish dal makhani with chopped cilantro leaves and some more cream, and serve with a dollop of butter.
Pro-tip: If you have access to Amul butter, make sure to use that. We grew up eating only this brand of butter and love its signature taste on this dal makhani. It is different because it is a tad bit saltier than other brands of salted butters in the market.

Tips For Restaurant-Style Dal Makhani
Slow cook it longer: I cannot emphasize this enough. Dal Makhani gets it signature creamy texture from slow cooking the dal. The more you cook on low flame, the creamier it gets.
Mash some of the dal: After the dal is boiled, use a potato masher to mash some of the dal. This gives a thick and creamy consistency to the final dish. You don’t want to mash completely, as you still want some texture in the final dish.
Mom’s tip: This dal is a bit harder to digest, so she recommends adding a pinch of hing (asafoetida) and some carom seeds when cooking it.
The color: I suggest using store-bought tomato puree for a deeper color and smooth texture. However, if this is not possible, it is okay to blend tomatoes at home to make the tomato puree. Make sure to use Kashmiri red chili powder for a deep red color without adding too much heat.
Be generous with butter and cream: After all, this dal has “makhani” in its name, which means “buttery”. So, be generous with the use of butter and cream to get the signature rich and creamy taste.
Make a vegan version: Simply replace butter with oil or vegan butter. And use coconut cream or cashew cream instead of dairy cream. The taste will still be rich and delicious!
Using canned kidney beans: If using canned kidney beans, you can drain and rinse them. Then add them after the dal is boiled or cooked in the pressure cooker. You can also directly add them when adding the dal to the tempering.
Onion-Free Version: Some traditional Punjabi households make it without onions & garlic, focusing on tomatoes, cream, and whole spices. Just skip the onion and garlic and follow the same recipe.
Kasoori Methi: I don’t add it, as my mom doesn’t. If you like, crush 1 tablespoon of dried fenugreek leaves between your palms and add them to the dal just before adding the cream.
Second Tempering: I did not add a second tempering. But if you like, you can heat 1 tablespoon of butter or ghee in a small pan. Add a pinch of hing and a few pieces of thinly sliced garlic and let them cook until the garlic is golden, about a minute. Then turn off the flame and add 1/2-1 teaspoon of Kashmiri red chili powder. Stir and top it on the dal.
What to Serve with Dal Makhani?
Dal Makhani tastes great with a variety of Indian sides. It pairs well with white basmati rice or jeera rice (my fav!). For bread lovers, garlic naan, roti, or paratha make excellent choices. You can find naan at Trader Joe’s or Whole Foods in the frozen section.
Pro-tip: Dal Makhani tastes even better the next day after cooking. So make sure to double the recipe for leftovers to enjoy the next couple of days.

How to Store Leftovers?
This Dal Makhani will store well in an airtight container in the refrigerator for 3-4 days.
If you’d like to keep it longer, freeze it in small portions in a freezer-safe container for up to 2 months. Thaw it overnight in the refrigerator, and reheat it in the microwave or a pan on the stovetop. You might need to add a splash of water to adjust the consistency. This dal thickens as it cools.
More Dal Recipes You’ll Love
Lentils & Beans
Instant Pot Chana Dal
Lentils & Beans
Dal Tadka
Lentils & Beans
Red Chori Curry (Adzuki Beans Curry)
Lentils & Beans
Pumpkin Dal (Instant Pot & Stovetop)

Dal Makhani (Mom’s Authentic Recipe)
Ingredients
- 1 cup Black gram lentils (Sabut Urad Dal)
- 1/4 cup Red Kidney Beans (Rajma)
- 1 1/2 teaspoon Salt
- 1 Bay leaf (Tej Patta)
- 1-2 Black Cardamom (Moti Elaichi)
- 1/4 teaspoon Carom seeds (Ajwain), optional, helps for digestion
- 4 cups Water, for stovetop pressure cooker, 3.5 cups for instant pot
- 1 tablespoon Ghee
- 3 tablespoons Butter, I used amul butter, divided
- 1/2 teaspoon Cumin seeds (Jeera)
- 1 pinch Asafoetida (Hing), optional, use gluten-free if needed or skip
- 1/2 cup Yellow onion, grated or finely diced (optional)
- 1 Green Chili Pepper, finely diced or slit lenghtwise
- 1/2 tablespoon Ginger, freshly grated or paste
- 6 cloves Garlic, freshly minced or paste
- 1/2 cup Tomato puree, use store-bought if possible, or puree 2 fresh tomatoes
- 2-3 teaspoon Kashmiri red chili powder, or Deggi mirch, adjust to taste
- 1/2 teaspoon Garam Masala
- 1.5-2 cups Water, adjust as needed
- 1/4 cup Cream
- Amul butter, for topping when served
- Cilantro leaves , to garnish
Dhungar (optional, for smokey flavor)
- 1 piece Charcoal
- 1 teaspoon Oil
Instructions
Pressure Cook the Dal
- Wash and rinse urad dal and rajma in a large bowl. Soak overnight in 3 cups of water.
- Drain the water in the morning and transfer the dal and rajma to a pressure cooker with 1 1/2 teaspoon salt, bay leaf, black cardamom, and ajwain. Add 4 cups of water (or 3.5 cups if using instant pot).
- Pressure cook on high-medium heat for 3 whistles, then reduce the heat to low-medium and cook for another 15 minutes. (For the instant pot, pressure cook on high pressure for 22 minutes)
- Let the pressure release naturally. The dal and rajma should be thoroughly cooked and melt-in-the-mouth soft. Check by mashing them with your fingers. Now, you can mash some of the dal and rajma using a potato masher or ladle. Don't overmash, you want to have some texture to the dal.
Make the Masala
- In a large pot or pan, heat 2 tablespoon of butter and ghee on medium heat.
- Once they melt, add the cumin seeds and let them sizzle. Then, add the asafoetida and then the onions. Cook the onions for around 5-6 minutes until they turn light golden.
- Add the ginger and garlic. Cook for 1 minute until the raw smell is gone.
- Add the tomato puree. Cook for 3 minutes while stirring continuously. The masala is cooked when oil starts oozing out from the sides.
- Add in the boiled dal, Kashmiri red chili powder and garam masala.
- Add 1 cup of water and stir it in. Bring to a boil, set heat to low, and simmer the dal uncovered for about 30-40 minutes. Sit at regular intervals so that the dal does not stick to the pan. You can add more hot water to adjust the consistency of the dal.
- Once the dal is simmered for 30 minutes, add the remaining 1 tablespoon butter and 1/4 cup cream and stir it. Simmer for another 5 minutes. The dal can be served as is or you can do the dungar method below to add a smokey flavor.
Dhungar Method (optional, for smokey flavor)
- Place a trivet and small steel bowl on top of the dal (it should not submerge in the dal). Heat a piece of charcoal over a direct flame until it is red hot. Now, place this hot charcoal in that steel bowl and pour 1 teaspoon of oil on top. This will make fumes come out of the charcoal. Immediately cover the pan with a lid for 5-7 minutes. The longer you keep, the smokier the dal gets. Remove the lid, the steel bowl with charcoal, and the trivet.
Serving
- Garnish dal makhani with chopped cilantro leaves, some more cream and serve with a dollop of butter.