Restaurant-Style Dal Makhani
Dal Makhani is one of the most ordered Indian dish in restaurants. You can make authentic, buttery, rich dal makhani at home. It’s just as good as the restaurant version! Black gram and kidney beans are simmered in a creamy spiced sauce and is perfect for special occasions or a great dinner. (gluten-free, soy-free, nut-free, vegan)

Love ordering Dal Makhani at restaurants? You’ll love this homemade version even more! This is adapted from my home-style dal makhani that’s on the blog and in my books. The difference is that this version has more spices, including some whole spices, which create more layers of flavor.
This version of dal makhani is a little bit more involved than my home-style version. It has both a base sauce and a spiced oil. This levels up the flavor and adds a smoky, creamy flavor, like restaurants usually serve. There’s also a lot more Kashmiri chili powder in this version compared to the home-style one.
The home-style recipe is quicker and still delicious, but this one takes it up another couple of notches, simmering the beans in a deeply-flavored sauce.

Makhani means both “butter” and “like butter,” and the dish is called dal makhani, both because of the butter content and the creamy, buttery texture of the dal. The goal is to cook the beans long enough that they become soft and almost break down into the sauce, thickening it and creating a smooth consistency. For the right texture, I prefer to use a pressure cooker / instant pot, but you can also cook it in a saucepan. I included both methods in the recipe.
After cooking the beans, we make a delicious sauce with whole spices, aromatics, and ground spices, then add the cooked beans to it. Then, we prepare a spice oil with toasted fenugreek leaves, Kashmiri chili, smoked paprika, and a smoky burnt cinnamon stick. Burning the cinnamon stick for just half a second before adding it to give the dal its smoky restaurant-style flavor.
Traditionally, restaurants achieve this smoky flavor by using food-grade charcoal. They place a piece of hot charcoal in a bowl with oil, which immediately smokes. Then, they nestle the bowl inside the dal pot and cover the pan for 10 to 15 minutes. If you don’t want to use charcoal or burnt cinnamon, liquid smoke can also work.

Why You’ll Love Dal Makhani
- creamy, buttery dal with two kinds of beans
- deep flavor from the sauce and the spice oil, no dairy needed!
- flexible! Cook the beans in the Instant Pot or on the stovetop
- naturally gluten-free, soy-free, and nut-free with an oil-free option
More Authentic Dal Recipes
For the Sauce
- 2 teaspoons oil
- 1/2 teaspoon cumin seeds
- 1 black cardamom, partially opened
- 2 green cardamoms, partially opened
- 2 whole cloves
- 1 cup chopped red onion
- 5 to 6 garlic cloves, finely chopped
- 1/2 teaspoon salt
- 1/2 inch ginger, minced
- 1 hot green chili, finely chopped, such as Indian green chili or Serrano. Use milder, if needed, or just omit for less heat, if needed.
- 2- inch cinnamon stick, broken in half
- 2 teaspoons Kashmiri chili powder
- 1/2 to 1 teaspoon garam masala
- 4 ounces tomato puree, passata, or blended tomatoes
- 1/2 cup chopped tomato, or more, to taste
- 1 teaspoon dried fenugreek leaves, kasuri methi
- 1/2 cup non-dairy cream, such as cashew cream, coconut cream, or yogurt
- water, as needed
Prevent your screen from going dark
Make the beans.
-
In a bowl, wash the urad dal and kidney beans thoroughly, then drain. Add back to the bowl with 3 times as much water as beans, and soak overnight. The next day, drain, wash them well and drain again, and cook in the pressure cooker or saucepan.
-
To make them in the pressure cooker/Instant Pot: Add beans, bay leaves, salt, and 2 1/2 cups water. Pressure cook for 50 minutes on bean mode.
-
To make them in the pan: Add beans, bay leaves, salt, and 4 cups water. Bring to a boil over medium heat, partially cover, reduce the heat to medium-low, and cook 1 1/2 to 2 hours, until the beans are soft. Add water, as needed, if the pan looks dry. The beans are ready when they are soft, and you can easily squish a bean between your fingers.
-
Once cooked, mash some of the beans with a spatula or potato masher to help thicken the sauce.
Make the base sauce.
-
Heat a large skillet over medium heat, and add 2 teaspoon of the oil. Once the oil is hot, add the cumin seeds and cook until they change color significantly, 30 seconds to 2 minutes, depending on your stove. Then, add the black cardamom, green cardamoms, and whole cloves. Cook for 15 seconds, then mix in the onion, garlic, and salt. Cook until golden brown, 6 to 8 minutes. Mix in the ginger and green chili, and cook for 1 to 2 minutes.
-
Meanwhile, break your cinnamon stick in half and use tongs to hold it over a gas flame until it catches fire. Let it burn for just a second, then blow it out, and mix it into the onions for smoky flavor. Stir in Kashmiri chili powder, garam masala, and a splash of water to prevent burning.Mix in the tomato puree and chopped tomatoes, then crumble in the fenugreek leaves. Cook 4 to 5 minutes until they get jammy, mashing the larger pieces to help them break down. Mix in the beans with any leftover cooking liquid, reduce the heat to medium-low, and simmer 10 to 20 minutes (longer is better!). If it feels like there is too much cooking liquid, reserve the extra, and you can add it later, if needed. Taste and adjust salt and flavor, if needed.
-
Stir in 1/4 cup of water or reserved bean liquid to cool the pan slightly, then mix in the non-dairy cream or yogurt. Simmer for 10 to 15 minutes more. Taste and adjust the flavor with salt, cayenne, or lemon juice, if needed. Switch off the heat, and make the spiced oil.
Make the spiced oil.
-
In a small skillet over medium. heat, dry toast the fenugreek leaves until they become fragrant or change color, about a minute. Add the vegan butter, Kashmiri chili powder, and smoked paprika. As soon as the butter melts, add in a tablespoon of water and reduce the heat to low. Water help keeps the Kashmiri chili powder from burning and help retains that beautiful red color. Burn the remaining half cinnamon stick the same way you did the other one, and add it to the pan, mixing well. Switch off the heat.
Serve the dal makhani.
-
Pour the spiced oil over the dal and lightly mix in. Garnish with more non-dairy cream, cilantro, and lemon juice, and this delicious dal makhani is ready to serve. Serve hot with rice, naan, flatbread, garlic bread, baked potato, or roasted veggies.
Do not add the rest of the whole spices to the sauce mixture at the same time as the cumin seeds, because the other spices will burn before the cumin seeds toast well.
You want to partially open the cardamom pods in a mortar and pestle or with a knife, but make sure you don’t lose the seeds. Opening the pods allows the flavor from the seeds to infuse the oil and the sauce.
Adding the garlic at the same time as the onion allows it to get a really deep, roasted flavor. It won’t burn, because the salt will cause the onion to release moisture as it cooks with the garlic.
For the tomato base, I use canned tomato puree (passata). This is different from tomato paste. In some countries, tomato paste is labeled as tomato puree, so be sure you’re using the one that’s a pourable mixture of thickened, blended tomatoes. If you don’t have it, just puree fresh tomatoes and cook them a little longer until thickened and roasted and the mixture looks glossy.
Storage
Leftover dal makhani will keep in the refrigerator for up to 4 days, but you should make the spiced oil fresh before serving. This also freezes well for up to 6 months. Reheat in the microwave or skillet, and add fresh spiced oil just before garnishing and serving.
This recipe is naturally gluten-free. It is soy-free and nut-free as long as you choose soy-free and/or nut-free non-dairy cream and vegan butter.
Oil free
Toast the spices in a dry skillet for the base sauce, then add stock instead of oil. For the spiced oil, toast the spices and add chili powder, paprika, salt, and 2 to 3 tablespoons of water instead of butter.
Substitutions
If using canned kidney beans instead of dry, add 1 cup of cooked kidney beans to the base sauce w/ the black urad beans.
Other lentils
You can use brown lentils, green mung beans, caviar lentils and cook them in the instant pot for 10-20 minutes depending on the lentil. Or in the sauce pan for 25-45 minutes. And then add the cooked lentils to the base sauce per the recipe.
Calories: 334kcal, Carbohydrates: 49g, Protein: 18g, Fat: 8g, Saturated Fat: 1g, Polyunsaturated Fat: 1g, Monounsaturated Fat: 5g, Sodium: 482mg, Potassium: 564mg, Fiber: 16g, Sugar: 8g, Vitamin A: 882IU, Vitamin C: 14mg, Calcium: 87mg, Iron: 6mg
Nutrition information is automatically calculated, so should only be used as an approximation.

Ingredients
- beans – We are using urad dal (also called black gram or black matpe beans) and dry kidney beans. To season the beans, we are using bay leaves and salt.
- oil – To sauté and to roast the spices. See the recipe card for oil-free.
- whole spices – For the sauce, you need cumin seeds, black cardamom, green cardamom, whole cloves, and half of a cinnamon stick. It’s important to partially open the cardamom pods, but don’t let all of the seeds fall out. For the spiced oil, you are using dried fenugreek leaves and another half cinnamon stick.
- aromatics – Onion, garlic, ginger, and green chili add a ton of umami to the sauce!
- ground spices – The sauce has Kashmiri chili powder and garam masala. For the spiced oil, you’ll need more Kashmiri chili powder and some smoked paprika.
- tomato – We are using a mix of tomato puree and chopped tomato. The tomato puree should be the pourable kind that’s like thickened, pureed tomatoes, not tomato paste. You can puree your own tomatoes, they will just need to cook for another 5 minutes or so.
- non-dairy cream – You can use cashew cream, coconut cream, or non-dairy yogurt. Make sure that your cream of choice is nut-free and/or soy-free, if needed.
- vegan butter – Gives the dal makhani its signature buttery flavor. Use soy-free and/or nut-free, if needed.
- garnishes – Finish the dish with fresh cilantro, more non-dairy cream, and some lemon juice.
💡Tips
- Do not add the rest of the whole spices to the sauce mixture at the same time as the cumin seeds, because the other spices will burn before the cumin seeds toast well.
- You want to partially open the cardamom pods in a mortar and pestle or with a knife, but make sure you don’t lose the seeds. Opening the pods allows the flavor from the seeds to infuse the oil and the sauce.
- Adding the garlic at the same time as the onion allows it to get a really deep, roasted flavor. It won’t burn, because the salt will cause the onion to release moisture as it cooks with the garlic.
How to Make Authentic Dal Makhani
In a bowl, wash the urad dal and kidney beans thoroughly, then drain. Add back to the bowl with 3 times as much water as beans, and soak overnight. The next day, drain, wash them well and drain again, and cook in the pressure cooker or saucepan.
To make them in the pressure cooker/Instant Pot: Add beans, bay leaves, salt, and 2 1/2 cups water. Pressure cook for 50 minutes on bean mode.
To make them in the pan: Add beans, bay leaves, salt, and 4 cups water. Bring to a boil over medium heat, partially cover, reduce the heat to medium-low, and cook 1 1/2 to 2 hours, until the beans are soft. Add water, as needed, if the pan looks dry. The beans are ready when they are soft, and you can easily squish a bean between your fingers.
Once cooked, mash some of the beans with a spatula or potato masher to help thicken the sauce.
Heat a large skillet over medium heat, and add 2 teaspoon of the oil. Once the oil is hot, add the cumin seeds and cook until they change color significantly, 30 seconds to 2 minutes, depending on your stove. Then, add the black cardamom, green cardamoms, and whole cloves. Cook for 15 seconds, then mix in the onion, garlic, and salt. Cook until golden brown, 6 to 8 minutes. Mix in the ginger and green chili, and cook for 1 to 2 minutes.
Meanwhile, break your cinnamon stick in half and use tongs to hold it over a gas flame until it catches fire. Let it burn for just a second, then blow it out, and mix it into the onions for smoky flavor. Stir in Kashmiri chili powder, garam masala, and a splash of water to prevent burning.
Mix in the tomato puree and chopped tomatoes, then crumble in the fenugreek leaves. Cook 4 to 5 minutes until they get jammy, mashing the larger pieces to help them break down.
Mix in the beans with any leftover cooking liquid, reduce the heat to medium-low, and simmer 10 to 20 minutes (longer is better!). If it feels like there is too much cooking liquid, reserve the extra, and you can add it later, if needed. Taste and adjust salt and flavor, if needed.
Stir in 1/4 cup of water or reserved bean liquid to cool the pan slightly, then mix in the non-dairy cream or yogurt. Simmer for 10 to 15 minutes more. Taste and adjust the flavor with salt, cayenne, or lemon juice, if needed. Switch off the heat, and make the spiced oil.
In a small skillet over medium heat, dry toast the fenugreek leaves until they become fragrant or change color, about a minute. Add the vegan butter, Kashmiri chili powder, and smoked paprika. As soon as the butter melts, add in a tablespoon of water and reduce the heat to low. Water helps retain the color of the Kashmiri chili powder. Burn the remaining half cinnamon stick the same way you did the other one, and add it to the pan, mixing well. Switch off the heat.
Pour the spiced oil over the dal. Garnish with more non-dairy cream, cilantro, and lemon juice, and this delicious dal makhani is ready to serve.
Serve hot with rice, naan, flatbread, garlic bread, baked potato, or roasted veggies.

What to Serve with Dal Makhani
Serve this up hot with rice, naan, flatbread, garlic bread, baked potato, or roasted veggies.
Frequently Asked Questions
This recipe is naturally gluten-free. It is soy-free and nut-free as long as you choose soy-free and/or nut-free non-dairy cream. This version is also vegan, which means it is dairy-free, as well.
To make it oil-free, toast the spices in a dry skillet for the base sauce, then add stock instead of oil. For the spiced oil, toast the spices and add chili powder, paprika, salt, and 2 to 3 tablespoons of water instead of butter.
Leftover dal makhani will keep in the refrigerator for up to 4 days, but you should make the spiced oil fresh before serving. This also freezes well for up to 6 months. Reheat in the microwave or skillet, and add fresh spiced oil just before garnishing and serving.