Punjabi dal makhani is a wondrously rich lentil curry from Northern India. This is the restaurant version. You can make it in ten minutes once your lentils are cooked. The traditional version can take a whole day.

Dal makhani is celebration food in India.  It’s rich. Creamy. Mildly spiced. Not your every day dish. I don’t think they even had a home cooked version originally. This is restaurant food. Invented by restaurants for restaurants. And served in Indian restaurants everywhere. My spin on it adds a bit of chili. Just a bit. Not traditional. But I like it.

Restaurant style punjabi dal makhani is rich and buttery. Just the way they serve it in your favourite Indian restaurant.

Makhani means with butter. Lentils with butter. Sound good? It is. Start with ghee. Stir in some butter to finish. Throw in a bit of whipping cream to enrich. Not diet food. Party food.

Punjabi dal makhani may not be a dish you should have every day. Or every week. But when it’s time to feast you can do a lot worse.

Punjabi dal makhani in a small copper pot garnished with a red chili.

punjabi dal makhani
Prep Time
2 hrs
Cook Time
15 mins
Total Time
2 hrs 15 mins

Punjabi dal makhani is a mild, rich lentil curry worthy of the fanciest Indian meal.

Course: Side Dish
Cuisine: Indian
Servings: 6
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
  1. Pre-soak the urad dal, preferably overnight, in cold water. Cover them by about an inch with the water.

  2. Simmer the lentils in 4 cups water until tender - this could be a couple hours. Urad dal takes forever.

  3. Puree about 1/2 the lentils and return to the pot with the remaining whole lentils

  4. Warm your curry base. 

  5. Pre-heat a frying pan over medium heat. Add the ghee. 

  6. 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.

  7. Add garlic/ginger paste and cook until sizzling subsides.
  8. Turn the heat down to medium low. Add the kasoor methi and cook 20 seconds.

  9. Add the Indian restaurant spice mix and salt. Cook over medium low heat about 30 seconds.

  10. Add tomato paste, increase heat to medium and cook until oil separates and craters form.
  11. Add 3 oz of the curry base. Raise heat and cook until craters form and oil separates.

  12. Add 6 oz of the curry base and cook until craters form and oil separates.

  13. Add another 6 oz of the curry base and cook until craters form and oil separates.

  14. Simmer 5 minutes.
  15. 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.

  16. Mix in butter until melted.
  17. Stir in heavy cream. Continue to heat until the dal makhani comes back to temperature.

  18. Adjust salt to taste and garnish with a bit more cream (optional) and cilantro.

Recipe Notes

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.

Leave a Reply

Your email address will not be published. Required fields are marked *