
The first time I ate rajma in Delhi, I was 19 years old, standing at a tiny stall outside Jama Masjid, balancing a steel plate piled with steamed rice and this impossibly thick, brick-red, smoky curry. I genuinely didn’t say a single word for five minutes. I just ate. That’s the power of a good rajma masala recipe — it doesn’t need any introduction. It does all the talking itself.
I’ve been chasing that exact flavour ever since. My mother made rajma every Sunday growing up in Ludhiana, and hers was excellent — but it was my neighbour Mrs. Bedi’s rajma that I’d dream about. She’d start soaking her beans on Saturday night and spend Sunday morning slowly building the masala, never rushing, never cutting corners. I finally got her to teach me properly about six years ago, and I haven’t made it any other way since.
What I’m sharing today is that recipe, with a few things I’ve figured out on my own — including exactly why your rajma comes out watery (it’s probably one of two things, and I’ll tell you both), how to get that deep restaurant-style colour, and the one step most people skip that makes all the difference. This is a proper Punjabi rajma recipe — no shortcuts, full flavour.
This authentic Punjabi rajma masala recipe delivers a thick, deeply flavoured kidney bean curry with a rich tomato-onion base. Slow-cooked in aromatic whole spices and finished with ghee, it pairs perfectly with steamed basmati rice. Every step here is designed to build maximum flavour from scratch.
A few notes before we begin, especially for anyone reading this from outside India:
Soak 1.5 cups dried rajma in plenty of water overnight — at least 8 hours, ideally 10-12. The beans will swell and almost double in size. Drain and rinse well.
Add to a pressure cooker with 4 cups fresh water, 1 teaspoon salt, and your black cardamom. Cook on medium-high for 6-7 whistles, then lower heat and cook 10 more minutes. Let pressure release naturally — never force it. Press a cooked bean between your fingers; it should mash completely with no resistance. Reserve the cooking liquid — you’ll need it for the gravy.
Heat mustard oil in a heavy kadai until it smokes, then reduce the flame. This smoking step removes the raw bitterness. Add your cumin seeds, bay leaves, cinnamon, and cloves. They’ll splutter and become fragrant within 30 seconds — you’ll smell the difference immediately.
Add finely chopped onions and cook on medium heat for 15-18 minutes. Stir every 3-4 minutes. I know it feels like forever, but this is where the magic happens. The onions should turn a deep, dark golden-brown — not pale yellow, not burnt black. This is the flavour foundation of the entire rajma curry.
Add ginger-garlic paste and slit green chillies. Sauté for 2-3 minutes until the raw smell completely disappears. Lower the heat before adding your spice powders — Kashmiri chilli, coriander, turmeric, cumin. Stir fast for 30 seconds — the spices will sizzle and darken. Immediately pour in the tomato puree to stop them from burning.
Now cook this masala on medium heat for 10-12 minutes, stirring regularly. You’re waiting for the oil to separate from the masala and pool at the edges. When you see orange-red oil appearing at the sides, the masala is ready. This bhuno stage is what most people cut short, and it’s exactly why their rajma lacks depth.
Add the boiled rajma with about 1.5-2 cups of its reserved cooking liquid. Stir to combine. Now here’s Mrs. Bedi’s trick that I swear by: use the back of your spoon to mash 5-6 beans directly against the side of the pot. Don’t mash all of them — just enough. The released starch will naturally thicken your gravy as it simmers. No cornflour, no cream, no shortcuts.
Bring to a boil, then simmer uncovered on low-medium heat for 15-20 minutes. You’ll watch it transform — the gravy will darken to that gorgeous deep brick-red, the beans will absorb the masala, and the whole pot will smell like a Punjabi dhaba on a winter morning.
Add garam masala, amchur, and a generous tablespoon of ghee. Stir, taste, and adjust salt. Simmer 2 more minutes. Garnish with fresh coriander and thin ginger juliennes. Serve immediately.
Skip onions, garlic, and ginger. Build the masala with asafoetida (hing), extra cumin, and a cashew-tomato base for richness. It won’t be the same, but it’s still really good. Add more garam masala and a teaspoon of fennel powder to compensate for the missing aromatics.
This recipe is already plant-based! Just swap the ghee for coconut oil or good quality vegan butter at the finishing stage. Everything else stays the same.
This rajma masala recipe is naturally gluten-free. Just ensure your spice powders are from a certified GF brand, as cross-contamination can sometimes happen with packaged spices.
I know purists will disagree, but on a Wednesday evening when you’re exhausted, two cans of rinsed kidney beans are perfectly acceptable. Skip the pressure cooking, add beans directly to the finished masala with 1 cup water, and simmer for 20 minutes. The kidney bean has been cultivated for thousands of years and tastes delicious no matter the form. Don’t let anyone tell you otherwise.
Rajma keeps beautifully. Store in an airtight container in the refrigerator for up to 4 days. It actually improves as it sits — the beans soak up more flavour overnight, and the gravy deepens. To reheat, add a splash of water (the gravy thickens significantly when cold), heat gently in a pot on low flame, and stir occasionally. Don’t microwave on high — the beans can burst and turn mushy.
For freezing, rajma masala freezes extremely well for up to 3 months. Freeze in individual portions in zip-lock bags or containers. Thaw overnight in the fridge and reheat as above. I always make a double batch and freeze half — future-me is always grateful.
Find more make-ahead Indian curry ideas in my freezer-friendly Indian curries collection.
This is the most common rajma problem, and it almost always comes down to one of two things. Either the onion-tomato masala wasn’t cooked long enough (the oil should visibly separate before you add the beans), or you didn’t mash any beans into the gravy. Mash 5-6 cooked beans against the pot wall — the starch releases and naturally thickens everything as it simmers. Also, simmer uncovered for at least 15-20 minutes to let excess liquid evaporate.
Two things create that gorgeous deep red: Kashmiri red chilli powder (use a full 1.5 teaspoons — it’s mild, not hot) and sufficiently caramelised onions. If your onions are only pale golden, the masala base will look orange and thin rather than deep brick-red. When in doubt, cook the onions a little longer than you think necessary, and add an extra teaspoon of Kashmiri chilli.
Absolutely — two 400g cans work for this recipe. Drain, rinse, and add directly to the finished masala with about 1 cup of water. Simmer for 20-25 minutes. The flavour won’t be quite as deep as beans cooked from scratch with whole spices, but it’s a completely respectable weeknight version that I make myself regularly.
A minimum of 8 hours, but overnight (10-12 hours) is better. If you forgot to soak, use the quick soak method: cover beans with water, bring to a boil, cook 2 minutes, turn off the heat, cover and let soak for 1 hour. Drain, rinse, and cook as normal. The texture won’t be quite as creamy, but it works in a pinch.
Rajma is genuinely one of the most nutritious foods in the Indian pantry. Kidney beans are an excellent source of plant-based protein (about 15g per cooked cup) and are very high in fibre, which keeps you full for longer. The main thing to watch if you’re tracking calories is the amount of oil and ghee used — but for a wholesome, satisfying meal, this rajma masala recipe is hard to beat nutritionally.