Go Back
+ servings
Punjabi dal makhani in a small copper pot garnished with a red chili.
Print Recipe
5 from 4 votes

punjabi dal makhani

Punjabi dal makhani is a mild, rich lentil curry worthy of the fanciest Indian meal.
Prep Time2 hrs
Cook Time15 mins
Total Time2 hrs 15 mins
Course: Side Dish
Cuisine: Indian
Servings: 6
Calories: 274kcal
Author: romain | glebekitchen


  • 1 cup whole urad dal - soaked overnight
  • 2 Tbsp ghee
  • 1 Tbsp garlic/ginger paste - recipe link below
  • 2 black cardamom whole, split
  • 1 2 inch piece cassia bark or cinnamon stick
  • 3 whole dried red chilies
  • 1 Tbsp Indian restaurant spice mix - recipe link below
  • 1 Tsp kasoor methi - crumbled between your fingers
  • 3 Tbsp tomato paste with enough water to dilute to the consistency of pasatta
  • 15 oz curry base - recipe link below
  • 2 Tbsp butter
  • 1/2 cup heavy cream (35%)
  • 1 tsp salt to taste


  • Pre-soak the urad dal, preferably overnight, in cold water. Cover them by about an inch with the water.
  • Simmer the lentils in 4 cups water until tender - this could be a couple hours. Urad dal takes forever.
  • Drain the lentils. Puree about 1/2 the lentils and return to the pot with the remaining whole lentils
  • Warm your curry base. 
  • Pre-heat a frying pan over medium heat. Add the ghee. 
  • Add the whole dried chilies, cardamom and cinnamon to the pan and let them sizzle for about 15 seconds. The chilies will start to change colour.
  • Add garlic/ginger paste and cook until sizzling subsides.
  • Turn the heat down to medium low. Add the kasoor methi and cook 20 seconds.
  • Add the Indian restaurant spice mix and salt. Cook over medium low heat about 30 seconds.
  • Add tomato paste, increase heat to medium and cook until oil separates and craters form.
  • Add 3 oz of the curry base. Raise heat and cook until craters form and oil separates.
  • Add 6 oz of the curry base and cook until craters form and oil separates.
  • Add another 6 oz of the curry base and cook until craters form and oil separates.
  • Simmer 5 minutes.
  • Return the pot with the lentils to the stove over medium low heat.. Add contents of the pan to the pot with the urad dal and stir to combine.
  • Mix in butter until melted.
  • Stir in heavy cream. Continue to heat until the dal makhani comes back to temperature.
  • Adjust salt to taste and garnish with a bit more cream (optional) and cilantro.


The recipe for curry base is here.
The recipe for indian restaurant spice mix is here
The recipe for garlic ginger paste is here.
If you haven't read about Indian restaurant technique yet, do that before you start cooking.
Have all your ingredients prepped and ready to go.
If you are making multiple curries, have your curry base warming in a pot on the stove. If you are just making one, microwave it to warm it up right before you start cooking.
Indian restaurants pre-cook their meat so it's ready for service. This recipe assumes the same. To pre-cook chicken, simply simmer it with a bit of curry powder and salt in chicken stock for about 10-15 minutes - until it's barely cooked.
To pre-cook lamb or beef, do the same but plan for 1 to 1/2 hours for lamb and 2 hours or more for beef. You are making stew meat so you are braising until tender. You will need to keep an eye on the level of the stock. For beef use beef stock.


Serving: 6servings | Calories: 274kcal | Carbohydrates: 20g | Protein: 9g | Fat: 16g | Saturated Fat: 10g | Cholesterol: 50mg | Sodium: 556mg | Potassium: 172mg | Fiber: 7g | Sugar: 1g | Vitamin A: 675IU | Vitamin C: 3.5mg | Calcium: 43mg | Iron: 3.2mg