This post contains affiliate links. Read my disclosure policy here.
This Vegan Dal Makhani is rich, creamy, and deeply flavorful, made with whole brown lentils, warming spices, and a velvety, tomato-based sauce. It's a comforting, restaurant-style dish that's surprisingly simple to make at home using pantry staples.

This Vegan Dal Makhani feels a little fancy, but it's honestly very low effort. Once it's simmering, you can mostly ignore it while the flavors do their thing. By the end, it tastes like something that took way more work than it actually did. Just remember to soak the lentils overnight for a quick simmer the next day.
Dal Makhani is a classic North Indian dish traditionally made with whole urad dal (black gram) and plenty of butter and cream. This version mimics all the richness using plant-based ingredients and calls for brown lentils, which are more accessible.
I love to serve it with rice and naan (or my no-knead artisan bread) with a side of cilantro and lemon wedges to brighten things up. For extra richness, I'll add a pat of vegan butter or vegan sour cream to the finished dish. It's so good!
Ingredients Needed
Here's what you'll need to make this Vegan Dal Makhani, along with a few notes:

- Whole Brown Lentils: They hold their shape while softening, creating a similar texture to the classic version. Red lentils won't work as they will break down too much.
- Kidney Beans: If you don't have them, use black beans or additional lentils.
- Full-fat Coconut Milk: Replaces cream, adding richness and body. Light coconut milk will thin the dish.
- Crushed Tomatoes: Fresh tomatoes work too, just cook longer. Petite diced tomatoes can be substituted.
- Tomato Paste: Creates a deeper base. If you skip it, the dish will taste lighter and less layered.
- Spices (cumin, coriander, cayenne, black pepper, cinnamon, cardamom, nutmeg): Use less cayenne for a milder dish, or adjust to taste. If missing coriander, substitute with a little extra cumin plus a squeeze of lemon. Cardamom can be replaced with a pinch of allspice.
- Brown Sugar: Just a small amount rounds out tomato acidity and spice heat.
- Olive Oil: Adds light fruitiness; a neutral oil works just as well.
- Yellow Onion: Shallots will work here, too.
- Ginger: Fresh is best, but in a pinch, you can use ½ teaspoon of ground ginger.
How to make Vegan Dal Makhani
This dish will come together easily once everything is prepped. Don't forget to soak the lentils the night before!

- Heat a pot over medium-high heat and add the oil. Once shimmering, add the onion, and sauté until translucent and slightly browned, about 6 to 8 minutes. Now add the garlic, ginger, and tomato paste.
- Cook, stirring frequently for a few minutes until fragrant.
- Add the spices (cumin, coriander, cayenne pepper, black pepper, cinnamon, cardamom, and nutmeg).
- Cook until fragrant, stirring constantly for 30-60 seconds.

- Add the lentils, beans, tomatoes, sugar, and coconut milk, and combine well.
- Bring to a simmer, then reduce the heat and simmer, uncovered, on low heat for 20-25 minutes, until the lentils are tender.
- Using an immersion blender, pulse a few times to puree about a quarter of the mixture.
- Top with cilantro and serve with lemon or lime wedges. Goes nicely with rice or flatbread, too.
FAQs
Store any leftovers in an airtight container in the refrigerator for up to 4 days. The flavors deepen over time, so it's just as good (if not better) the next day. Reheat on the stovetop over medium-low heat or in the microwave until warmed through. Add a splash of water or coconut milk to loosen it up if it thickens too much.
Yes, this freezes really well. Let it cool completely, then transfer to a freezer-safe container and freeze for up to 2-3 months. Thaw overnight in the fridge before reheating.

More Indian-inspired recipes to love
Did you make this recipe? Let me know what you think by leaving a star ⭐️⭐️⭐️⭐️⭐️ rating and sharing your feedback in the comment section below. It would make my day!
⭐️ Subscribe to the Vegan Huggs Newsletter and receive weekly recipes straight to your inbox! You'll also receive my FREE eCookbook featuring my top 10 recipes.
Recipe
Vegan Dal Makhani
Ingredients
- 1 cup whole brown lentils , rinsed and soaked for 6-8 hours or overnight. Drain and rinse again.
- 4 tablespoons olive oil or avocado oil
- 1 small yellow onion , finely chopped
- 6 cloves garlic , finely minced or grated
- 2 inch piece fresh ginger root , finely minced or grated
- 2 tablespoons tomato paste
- 1.5 teaspoons kosher salt (halve if using fine sea salt), plus more as needed
- 1 teaspoon ground cumin
- 1 teaspoon ground coriander
- 1 teaspoon ground cayenne pepper (use less for a milder heat)
- 1 teaspoon ground black pepper
- ½ teaspoon ground cinnamon
- ½ teaspoon ground cardamom
- ¼ teaspoon ground nutmeg
- 1 (15-oz) can kidney beans , drained and rinsed
- 1 (14-oz) can crushed tomatoes
- 1 tablespoon brown sugar
- 1 (14-oz) can full-fat coconut milk
- For serving: chopped cilantro, fresh limes/lemons, rice or flatbread.
Recommended Equipment
- Large Heavy-Bottomed Pot
Instructions
- Heat a heavy-bottomed pot or saucepan over medium-high heat and add the olive oil. Once the oil is shimmering, add in the onion, and saute 6 to 8 minutes, until translucent and browned around the edges.
- Add the garlic, ginger, and tomato paste and cook for 3 minutes, stirring frequently to prevent the garlic from burning.
- Add the kosher salt, cumin, coriander, cayenne pepper, black pepper, cinnamon, cardamom, and nutmeg. Cook the spices for 30-60 seconds until fragrant, stirring constantly to prevent burning.
- Add in the soaked lentils, kidney beans, crushed tomatoes, brown sugar, and coconut milk, and mix well. Bring the mixture to a simmer, then reduce the heat to low. Simmer, uncovered, on low heat for 20-25 minutes, stirring occasionally, or until the lentils are cooked through and soft.
- Turn off the heat. Using an immersion blender, pulse a few times directly in the pot to purée about a quarter of the mixture to partially cream, while leaving texture. Taste for salt and add more if needed. Garnish with cilantro if desired, and serve hot with rice or flatbread.










Comments
No Comments