Creamy Dal Makhani in a clay bowl topped with a swirl of cream and fresh coriander

Dal Makhani Recipe

Dal Makhani (Slow-Simmered Punjabi Black Lentils)

Dal Makhani is one of those recipes where technique matters far more than ingredient count. The difference between a thin, forgettable dal and a rich, restaurant-style one comes down to three non-negotiable stages: a full overnight soak, a tomato masala reduced until the oil visibly separates at the edges, and a 30-minute final simmer after the dal and masala are combined. Skip or rush any of the three, and the dish is still edible — it just isn’t Dal Makhani.

Last updated: 1 July 2026

For home cooks in the United States and United Kingdom, this recipe uses ingredients that are easy to find without a specialist grocery trip: whole black urad dal and dried red kidney beans (rajma) are commonly stocked at Indian and South Asian grocers, in the international aisle of larger supermarkets, and through online Indian grocery retailers in both countries. Garam masala, cumin seeds, ground coriander, and turmeric are standard spice-rack items in most US and UK kitchens already.

Why This Recipe Works

  • The overnight soak isn’t optional. Whole urad dal contains oligosaccharides in the outer husk that need extended hydration to break down — a properly soaked dal cooks evenly and turns silky rather than grainy.
  • The oil-separation cue removes the guesswork. Rather than a fixed timer, the recipe tells you exactly what to look for at the tomato stage: oil visibly pooling at the edges of the pan is the real signal the acidity has cooked out.
  • The gravy thickens without any added starch. Crushing roughly a third of the cooked lentils against the side of the pot creates the characteristic thick, velvety body — no flour or cornstarch needed.
  • It’s one of the most freezer-friendly Indian dishes there is. The dal base freezes for up to 3 months, and can even be frozen without the cream and finished fresh on reheating.
  • It gets better with time. Like most slow-cooked legume dishes, the flavor deepens noticeably after 24 hours in the fridge, making it a genuinely good make-ahead dinner.
  • It’s naturally vegetarian and gluten-free as written, with a built-in dairy-free variation for fully vegan diets.

Equipment You Will Need

  • Large heavy-bottomed pot or Dutch oven — minimum 4-litre capacity; a heavy base prevents scorching during the long simmer
  • Pressure cooker or Instant Pot (optional) — for the no-soak variation below
  • Stand blender or hand blender — for puréeing the tomatoes smooth
  • Long-handled wooden spoon or silicone spatula — for regular scraping during the final simmer
  • Kitchen scale and measuring cups/spoons — this recipe is written in both metric weights and US volume measurements
  • A large bowl for soaking — needs to hold the dal and beans covered by several inches of water

Ingredient Notes

Whole Black Urad Dal — 200g (1 cup)
This is the foundation of the dish and is not interchangeable with split, skinless urad dal (sold as “urad dal dhuli” or “white urad dal”). The whole, skin-on lentil has a different starch structure, and it’s what gives Dal Makhani its dark color and thick, velvety body after the long simmer. If you enjoy building meals around slow-cooked Indian legumes, our Instant Pot Chana Masala is a faster weeknight take on the same principle, using chickpeas instead of urad dal.

Dried Red Kidney Beans (Rajma) — 50g (¼ cup)
Cooked alongside the urad dal, kidney beans add body and a meaningful amount of the dish’s 13g of protein per serving.

Neutral Oil — 2 tbsp (30ml)
Sunflower or rice bran oil both work well and carry heat evenly during the onion-browning stage.

Unsalted Butter — 2 tbsp total (15g at the tempering stage, 15g at the finish)
Used in two stages — a portion builds the initial tempering, and the rest is stirred in at the very end. This two-stage approach, alongside the finishing cream, is what makes Dal Makhani distinct from a simpler dal.

Cumin Seeds — 1 tsp (4g)
Whole cumin seeds bloomed in hot oil release a warm, nutty aroma that forms the first aromatic layer. Don’t substitute ground cumin here — the fragrance and texture are different.

Dried Red Chilies and Bay Leaf
Kashmiri or Byadgi chilies are preferred for their milder heat. Both the chilies and bay leaf are fried briefly in the oil and butter before the onions go in.

Onion — 1 medium (150g), finely chopped
Cooked until deeply caramelised — this stage builds most of the dish’s underlying sweetness and depth, and cannot be rushed.

Ginger-Garlic Paste — 1 tbsp (20g)
Fresh ginger-garlic paste delivers noticeably more flavor than pre-jarred alternatives if you have the time to make your own.

Tomatoes — 2 medium (200g), puréed smooth
Fresh, ripe tomatoes purée best. This is the ingredient the whole technique of the recipe revolves around — watch for the oil-separation cue described in the instructions below.

Kashmiri Red Chili Powder — 1½ tsp (4g)
Used mainly for color, since Kashmiri chilies are milder than standard red chili powder. If unavailable, substitute ½ tsp mild paprika plus 1 tsp regular red chili powder.

Ground Coriander and Ground Cumin — ½ tsp (1.5g) each
Standard pantry spices in most US and UK kitchens, adding earthiness and depth to the finished masala.

Heavy Cream — 60ml (¼ cup), plus an optional garnish swirl
Stirred in only after the pot is off higher heat, to avoid splitting. Cashew cream (80g raw cashews blended with 120ml warm water) or coconut cream are the built-in dairy-free substitutes — see the Variations section below. For a dairy-rich curry from the same cooking tradition, our Butter Chicken From Scratch uses a similar butter-and-cream finishing technique.

Garam Masala — ½ tsp (1.5g)
Added only at the very end, off the heat, to preserve its aromatic volatiles rather than cooking them off.

Fresh Coriander (Cilantro) — 1 tbsp, finely chopped
Used as a finishing garnish along with an optional thin swirl of cream.

Ingredients for Dal Makhani arranged on a wooden board, including whole black urad dal, kidney beans, butter, cream, and spices
Everything needed for authentic, restaurant-style Dal Makhani

Step-by-Step Instructions

  1. Soak the dal and beans. Combine the whole urad dal and kidney beans in a large bowl. Cover with cold water by at least 5cm (2 inches) and soak for a minimum of 8 hours or overnight.
  2. Boil the lentils. Drain and rinse the soaked dal and beans thoroughly under cold running water. Transfer to the heavy-bottomed pot. Add 1.2 litres of fresh cold water and ¾ tsp salt. Bring to a rolling boil over high heat, skimming any grey foam from the surface during the first 10 minutes.
  3. Simmer until tender. Reduce the heat to the lowest possible simmer — a gentle, occasional bubble across the surface. Cover partially, leaving a 2cm gap. Cook for 1 hour 30 minutes to 2 hours, stirring every 20 minutes and adding 100ml hot water whenever the water drops below the surface of the lentils. The dal is ready when both the urad and kidney beans crush easily between two fingers without any firm centre.
  4. Whole black urad dal and kidney beans simmering in a pot of water
    The dal is ready when it crushes easily between two fingers with no firm centre
  5. Crush a portion of the lentils. Using the back of a large spoon, press approximately one-third of the cooked lentils and beans firmly against the inner wall of the pot to crush them. Stir the crushed portions back into the liquid. The consistency should resemble a loose porridge — thick enough to coat the back of a spoon but still pourable. Set aside off the heat.
  6. Bloom the whole spices. Heat the oil and 1 tablespoon of butter together in the same pot over medium heat until the butter melts and the foam subsides. Add the cumin seeds, dried red chilies, and bay leaf. Fry for 30 to 45 seconds until the seeds turn deep golden brown.
  7. Brown the onion. Add the finely chopped onion. Cook over medium heat, stirring every 2 to 3 minutes, for 12 to 15 minutes until deeply caramelised to a rich amber-brown throughout.
  8. Onion deeply caramelised with cumin seeds and bay leaf in a pot
    Deep amber-brown onions build most of the dish’s underlying flavor
  9. Add ginger and garlic. Add the ginger-garlic paste and stir continuously for 2 minutes until the raw aroma disappears and the paste turns golden at the edges.
  10. Reduce the tomato masala. Add the tomato purée. Increase to medium-high heat and cook, stirring frequently, for 8 to 10 minutes until the purée has darkened to a deep brick-red, reduced considerably, and oil is visibly pooling at the edges and bottom of the pan — the definitive sign the masala is cooked through.
  11. Deep brick-red tomato masala with oil pooling at the edges
    Oil pooling at the edges — not a timer — is the real signal the masala is ready
  12. Add the ground spices. Add the Kashmiri red chili powder, ground coriander, ground cumin, and ¾ tsp salt. Stir continuously for 60 seconds until the spices are fully incorporated and fragrant.
  13. Combine dal and masala. Add the cooked dal and kidney beans to the masala. Stir thoroughly to combine. If the mixture is too thick, add 100 to 150ml of warm water to adjust consistency.
  14. Final simmer. Cover and simmer on the lowest heat for 30 minutes, stirring every 8 to 10 minutes and scraping the bottom to prevent sticking.
  15. Stir in butter and cream. Remove the lid and stir in the finishing tablespoon of butter and the cream.
  16. Cream and butter being stirred into simmering Dal Makhani
    Reduce to low heat before adding cream to avoid splitting
  17. Simmer uncovered. Simmer uncovered for 5 minutes on low heat, stirring gently.
  18. Add garam masala. Remove from the heat and add the garam masala. Stir once to combine.
  19. Taste and garnish. Taste and adjust salt. Garnish with fresh coriander and a thin swirl of cream if desired.

Common Mistakes to Avoid

  • Stopping the tomato cook too early. If the masala is moved forward within 3 to 4 minutes of the tomatoes being added, the finished dal will taste acidic and metallic. The oil-pooling cue is the definitive signal, not a timer — in some kitchens this stage can take up to 12 minutes.
  • Substituting split urad dal. Using the skinless white or yellow variety instead of whole black urad dal is not an acceptable substitution — these are different ingredients with different starch profiles, and split urad produces a pale, thin-textured dish with a completely different character.
  • Adding cream over high heat. This can cause it to split, producing a grainy, separated sauce. Always reduce to low heat before adding cream. If splitting occurs, add a splash of warm water and stir vigorously over the lowest possible heat to re-emulsify.
  • Shortening the overnight soak. A quick one-hour soak isn’t a substitute for 8 to 12 hours — the lentil husk needs the extended hydration time to break down properly.
  • Rushing the final 30-minute simmer. The chemical changes that happen when the masala meets the cooked lentils over sustained, gentle heat can’t be replicated by turning up the heat and cooking faster.

Variations

Dhaba-Style Dal Makhani

Omit the cream and replace with an additional tablespoon of butter. Reduce tomatoes by one-third and add a small pinch of asafoetida (hing) at the cumin-seed stage. Calories reduce to approximately 325 per serving.

Vegan Dal Makhani

Replace all butter with coconut oil or high-quality vegan butter, and substitute the heavy cream with full-fat coconut cream from a refrigerated, unopened tin. Contains no animal products.

Instant Pot No-Soak Version

Rinse the dal and kidney beans without soaking. Pressure cook with 900ml water and ¾ tsp salt on High Pressure for 35 minutes, followed by a 15-minute natural release. Switch to the Sauté function and proceed from the onion-browning stage. Total time is approximately 75 minutes.

Serving Suggestions

Dal Makhani works as a weeknight dinner, a meal-prep staple, or a centerpiece for a larger Indian-inspired spread.

  • Steamed basmati rice or brown rice — the classic pairing
  • Whole wheat roti, paratha, or naan bread
  • Cucumber raita, to cool the palate between bites
  • A simple kachumber salad (diced tomato, cucumber, and onion with lemon juice)

Serving Dal Makhani alongside a paneer-stuffed paratha brings the combined plate protein to approximately 27 to 29 grams per meal — a pairing we’ll cover in a dedicated Paneer and Vegetable Stuffed Paratha post, coming soon to GrowRain. For a complete Indian dinner spread with a non-vegetarian option alongside it, pair this dal with our Butter Chicken From Scratch — a hearty lentil curry and a silky chicken curry together make for an impressive weekend meal. If you’re building a broader high-protein vegetarian plate, our High Protein Indian Meal with Paneer, Dal and Quinoa uses a similar approach to combining multiple plant-based protein sources.

Finished Dal Makhani plated with basmati rice and roti
Rich, restaurant-style Dal Makhani, ready for a family dinner

Storage and Make-Ahead

Refrigerator: Cool to room temperature within 1 hour of cooking, then store in an airtight glass or stainless-steel container for up to 4 to 5 days — the flavor deepens noticeably after 24 hours. Cooked legumes like this dal should go into the fridge within that 2-hour window, since bacterial spores that survive cooking can multiply quickly at room temperature. Reheat gently on the stovetop (3 to 4 tablespoons of water, 5 to 6 minutes, until fully warmed to 165°F/74°C) or in the microwave (2 tablespoons of water, medium power, 2 to 3 minutes, stirring once).

Freezer: Freeze in airtight, freezer-safe containers in individual or double portions for up to 3 months. Dal Makhani is exceptionally freezer-friendly.

Thawing: Transfer to the refrigerator the night before serving and thaw overnight. Do not refreeze once thawed.

Make-Ahead note: This is one of the highest-yield meal-prep recipes there is — making 4 servings takes nearly the same effort as making 8 or 12. Double or triple the batch, refrigerate a few portions for the coming week, and freeze the rest. For the best possible texture, the dal base can be frozen without the finishing cream and butter, then finished fresh with cream once reheated.

Nutrition Notes

A 280g serving (about 1¼ cups) of this Dal Makhani provides approximately 365 calories, 13g protein, 35g carbohydrate, 4g fiber, 19g fat (8g saturated), and 480mg sodium. These values are estimates sourced from ICMR-NIN Indian Food Composition Tables 2017 (IFCT 2017) for the urad dal and rajma, and USDA FoodData Central (Foundation Foods) for the butter and cream — they have not been independently laboratory tested, and actual values will vary based on specific ingredients, brands, and portion sizes. Serving alongside 100g of cooked brown rice adds approximately 111 calories, 2.6g protein, and 23g carbohydrate per person.

This dish is naturally vegetarian and gluten-free as written, with a dairy-free variation available above for fully vegan diets. If you’re looking to balance Dal Makhani within a broader Indian meal plan, our Healthy Indian Dinner Recipes for Weight Loss guide covers how to combine curries, grains, and vegetables for nutritionally complete meals.

Frequently Asked Questions

Do I really need to soak the lentils overnight?

Yes — the overnight soak (8 to 12 hours) is the single most important step for texture, allowing the oligosaccharides in the lentil husk to break down for even cooking. If soaking genuinely isn’t possible, pressure cook without soaking on High Pressure for 35 minutes with a 15-minute natural release, then proceed from the onion-browning stage. The texture will be slightly less silky than the soaked version.

Can I use split urad dal instead of whole black urad dal?

No. Split, skinless urad dal has a different starch profile and will produce a pale, thin-textured dish rather than the thick, dark, velvety texture that defines Dal Makhani. Whole black urad dal (with the skin on) is essential to this recipe.

Is this Dal Makhani recipe vegan?

As written, no — it contains dairy in the form of butter and heavy cream. For a vegan version, replace the butter with coconut oil or vegan butter, and use full-fat coconut cream (from a refrigerated, unopened tin) in place of the heavy cream.

How long does Dal Makhani keep in the fridge and freezer?

Refrigerated in an airtight container, it keeps for 4 to 5 days, and the flavor actually deepens after the first 24 hours. In the freezer, it keeps for up to 3 months in airtight, freezer-safe containers. Thaw overnight in the refrigerator, and don’t refreeze once thawed.

Why did my cream split when I added it to the dal?

This happens when cream is added over heat that’s too high. Always reduce to low heat before stirring in the finishing cream. If it does split, add a splash of warm water and stir vigorously over the lowest possible heat to re-emulsify the sauce.

What should I serve with Dal Makhani for a complete meal?

Dal Makhani pairs naturally with rice or Indian flatbreads. For a higher-protein plate, pairing it with a stuffed paratha or a paneer-based side brings the total protein per meal well above what the dal provides on its own.

Related Recipes

Instant Pot Chana Masala — Punjabi Chickpea Curry

Butter Chicken From Scratch

High Protein Indian Meal with Paneer, Dal and Quinoa

Healthy Indian Dinner Recipes for Weight Loss

Explore More GrowRain Recipes
Looking for more practical Indian recipes, global cooking guides, and meal-prep ideas? Browse our growing collection of recipes designed for home cooks across the United States, United Kingdom, Canada, and Australia.

Subscribe to the GrowRain newsletter for new recipes, kitchen tips, and food safety insights delivered directly to your inbox.