Culinary Arts

Creamy Dal Makhani Recipe and Cooking Tips

Written by MasterClass

Mar 6, 2019 • 3 min read

Every culture has its comfort food: For most Indians, that includes some form of dal, or lentil stew. It’s creamy, light, and mild enough that it’s just as good for breakfast as it is for dinner.


What Is Dal Makhani?

Dal (“lentil”) makhani (“with butter”) is a Punjabi dish originating in the North Indian subcontinent, in the very same kitchen as another beloved classic, Indian butter chicken. Roughly translated as “buttery lentils,” dal makhani is a vegetarian stew that is served as both a hearty main and a side dish.

The tomato-based creamy dal is now standard Indian food in restaurants, thanks to the culinary stylings of a chef named Kundan Lal Jaggi at the Moti Mahal restaurant in 1950s post-partition Delhi.

How Is Dal Makhani Traditionally Made?

Traditional dal makhani is made with black lentils (whole urad dal, also known as black gram), red kidney beans (rajma), butter, and cream. The beans and lentils are cooked in a tomato-based sauce, bolstered by the Indian trinity of garlic, ginger, and onion and aromatics like garam masala and bay leaf. It’s finished with a swirl of heavy cream, which is stirred in to give the dal its coppery gloss.

What Is Dal Makhani Served With?

Dal makhani is often served with basmati rice, naan, or rotis, or as a complement to other main dishes like palak paneer and aloo gobi.

Is Dal Makhani a Vegetarian or Vegan Dish?

Dal makhani is vegetarian, but not traditionally vegan, as it gets its rich, velvety texture from butter and cream. That being said, dal makhani can easily be made vegan by substituting coconut oil or vegan butter and coconut cream for the dairy products. It is also gluten free, and high in fiber and protein.

3 Tips for Making Perfect Dal Makhani

  1. Use whole, fresh spices if you can. While ground cumin could step in for the whole seeds in a pinch, the flavors you get from toasting whole spices at the time of cooking gives the finished dish far more depth and nuance.
  2. Slow cook it. This allows the flavors to meld and build on one another. No need to rush the individual stages once you’ve assembled your sauce; give the beans and lentils plenty of time to soak up the spice notes and get very tender.
  3. Use black gram lentils. Though you could technically get away with substituting any conventional lentil, the flavor and texture of the urad dal is the most authentic. They can be found in any Indian grocery store, or online.

How to Make Dal Makhani in a Pressure Cooker

To make dal makhani in a pressure cooker, heat the butter or ghee in the pot and fry the cumin seeds and bay leaf until fragrant. Add the garlic, ginger, chillies, and onion; sauté until soft and golden brown. Add soaked lentils with 4 cups water and season with salt. Pressure cook for 45 minutes, or 8-10 whistles. Open the lid, add the kidney beans and stir to combine. Continue to simmer for another 20 minutes, then add heavy cream, and simmer for another 10. Season to taste and serve with basmati rice.

Easy Dal Makhani Recipe

Prep Time
15 min
Total Time
2 hr

A hallmark of any dal makhani recipe is the time invested in cooking its separate stages. The longest bit concerns soaking and cooking the lentils. Other than that, the sauce comes together quickly and then it’s just a matter of assembly.

  • 1 cup dry whole urad dal, debris removed and soaked in water for 6 hours or overnight. (They will take less time to cook this way!)
  • 4 cups water
  • 1 15 oz can kidney beans (1 ½ cups), drained and rinsed
  • 3 tbsp unsalted butter or ghee
  • 1 tsp whole cumin seeds
  • 1 small bay leaf
  • 4-6 cloves garlic, minced
  • 1 tsp minced fresh ginger
  • 1-2 red chiles, minced
  • 1 small onion, finely chopped, about 1 cup
  • 1 cup tomato puree
  • Salt, to taste
  • ½ tsp garam masala
  • ½ tsp ground coriander
  • ½ tsp cayenne or other chili powder
  • ¼ tsp turmeric
  • ¼ -⅓ cup heavy cream
  1. Add the soaked dal to a pot with 4 cups of water, over high heat. Once boiling, lower heat to a simmer and allow lentils to cook, uncovered, for 30-40 minutes until tender. Drain well, reserving 1 ½ cups of the cooking water, and set aside.
  2. Meanwhile, in a large sauté pan or Dutch oven, heat butter over medium heat. Add cumin and bay leaf and cook for 30 seconds, until cumin begins to darken. Add the garlic, ginger, and chilies and cook another 30 seconds until that signature garlic-ginger paste has formed; add onion, and cook until translucent and the edges are beginning to brown.
  3. Add the tomato purée, garam masala, coriander, cayenne, turmeric, and the reserved water. Stir well to combine, and season with salt to taste. Simmer for 15-20 minutes, stirring occasionally, allowing to thicken just slightly.
  4. Add the cooked dal and kidney beans, and cook on low for another 10-15 minutes, stirring occasionally to prevent sticking.
  5. Add heavy cream, and simmer for 5 more minutes. Season to taste.

Serve with fresh basmati rice; find our recipe here.