
This dairy-free dal makhani turns basic lentils and beans into a smooth, thick curry that's just as good as the traditional butter-heavy version. I came up with this after spending years trying to match that fancy restaurant texture without using dairy products, and I found coconut milk works wonders.
I whipped this up for the first time during a freezing night when I needed something cozy and filling. The spices made my house smell amazing, and now it's what I always make when I've got plant-eating friends coming over.
What You'll Need
- Brown lentils: these form the backbone of our dish and bring an earthy taste and filling texture. Try to find ones that are all similar in size so they cook evenly
- Kidney beans: they boost the protein count and give a nice textural difference. Make sure to wash canned ones well to get rid of extra salt
- Olive or avocado oil: this wakes up the spices and cooks the veggies. Go for cold pressed if you can
- White onion: builds the first layer of flavor. Pick ones that feel firm without any mushy spots
- Fresh garlic and ginger: these are must-haves for real flavor. Skip the jars and go with fresh for the best taste
- Tomato paste: adds deep flavor and slight tang. The tube kind keeps its flavor better
- Coconut sugar: cuts through the acid with gentle sweetness. Regular brown sugar works too
- Spice mix: this is where the dish gets its soul from perfectly balanced warm spices. Heat whole spices then grind them yourself for knockout flavor
- Crushed tomatoes: gives thickness and tang. San Marzano tomatoes taste best if you can find them
- Coconut milk: this is how we get that creamy texture without any dairy. Don't skimp - use the full-fat kind
- Fresh cilantro: adds freshness at the end. Look for bright green bunches with no yellow bits
- Lemon juice: balances the richness with needed acid. Always squeeze it fresh
Cooking Method
- Get lentils ready:
- Wash brown lentils under cold water until it's clear, mixing them with your fingers. Don't skip soaking them overnight or at least 6 hours – it makes them cook faster and easier to digest. Forgot to soak? Just pour boiling water over them and wait an hour.
- Start the flavor:
- Warm your oil in a big, deep pan on medium-high until it's shiny but not smoking. Throw in your finely chopped onion and cook for about 5-7 minutes, stirring now and then until they turn see-through with golden edges. This browning step builds the first layer of taste.
- Add the zip:
- Drop in freshly grated garlic and ginger with the tomato paste, stirring the whole time so nothing burns. Let this mix cook for 3 minutes to mellow out the sharp garlic and ginger taste and let the tomato paste get a bit caramelized for deeper flavor.
- Wake up the spices:
- Put in the coconut sugar and all your spices. This key step releases their essential oils, making them more flavorful and fragrant. Keep stirring for 30-60 seconds until your kitchen smells amazing, but watch carefully so they don't burn and get bitter.
- Let it bubble away:
- Add your drained lentils, kidney beans, crushed tomatoes, and coconut milk, mixing everything well. Turn the heat to low and half-cover with a lid so some steam can escape. Let it simmer for 25-30 minutes, stirring every 8-10 minutes so nothing sticks. The lentils should get soft but still keep some shape.
- Give it the final touch:
- Turn off the heat and use a stick blender to pulse just 3-4 times in different spots. This gives you a mix of whole lentils and broken ones that thicken everything up. Mix in the fresh cilantro and lemon juice, then taste and add salt if needed to make the flavors pop.

The real star of this dish is the spice blend. I tweaked it for months to get it just right, with cardamom being my hidden trick. The first time my neighbor from India tried it, she asked for seconds and wanted to share the recipe with her mom. That told me I'd made something truly good that kept the traditional flavors while staying completely plant-based.
Prep In Advance
This dal actually gets tastier after a day or two as all the flavors mix and deepen. You can make it up to three days before you need it and keep it in the fridge in a sealed container. When you warm it up, just add a little water or veggie broth if it's gotten too thick. This makes it perfect for busy weekdays or when you're having friends over and don't want to be stuck in the kitchen.
Keeping It Fresh
Let your dal cool all the way before putting it in sealed containers. It'll stay good in the fridge for up to 5 days, though the cilantro won't look as bright after day two. To freeze it, split it into single portions in freezer containers, leaving some room at the top since it'll expand. It keeps for up to 3 months frozen. Thaw in the fridge overnight and warm it slowly on the stove, adding fresh lemon juice and cilantro before eating to wake up the flavors.
Easy Swaps
What's great about this recipe is how flexible it is. Don't have brown lentils? Black ones make an even more traditional version, but they'll need more cooking time. French green lentils work too but stay firmer. You can swap kidney beans for black beans for a different taste or leave them out completely if you want. Instead of coconut milk, try cashew cream - just blend 1 cup of soaked cashews with 1 cup of water until smooth. If you can't have nuts, unsweetened oat cream works well too.

This dal makhani shows how amazing plant-based cooking can be. It'll quickly become your go-to comfort food no matter the occasion!
Frequently Asked Questions
- → Can I use canned lentils instead of dried?
You can definitely use canned lentils to cut down prep time. You'll want about 2½ cups of drained canned lentils. Just cook them for around 15 minutes since they're already done. The end result might feel a bit different in your mouth but will taste just as good.
- → Is there a substitute for coconut milk?
If you don't want coconut, try blended cashews with water (after soaking them) or plain oat cream. Both options will give you that nice creaminess but will change the flavor a bit.
- → How spicy is this dal makhani?
Using 1 teaspoon of cayenne makes this medium hot. Want it milder? Drop down to ¼ teaspoon of cayenne. Looking for more kick? Go up to 1½ teaspoons or throw in some fresh green chilies.
- → Can I freeze leftover dal makhani?
You bet! This dish freezes really well. Let it cool down first, then put it in sealed containers. It'll stay good in the freezer for up to 3 months. When you're ready to eat it, thaw it in your fridge overnight and warm it up slowly on the stove with a little water.
- → Why do I need to soak the lentils overnight?
Soaking makes lentils cook faster, helps your body digest them better, and lets you get more nutrients from them. In a hurry? You can do a quick soak by boiling them for 2 minutes, then taking them off the heat and letting them sit covered for an hour.
- → What can I serve with dal makhani?
This tastes great with basmati rice, naan, roti, or even some sourdough bread. For a full dinner, add cucumber raita, some pickled onions, or a basic green salad with lemon dressing on the side.