Creamy Paneer Butter Masala Gravy for Chapathi
A rich, restaurant-style gravy that comes together in one pan in about 30 minutes. Soft cubes of paneer float in a velvety tomato-cashew sauce that clings to every bite of chapati.

You get all the comfort of takeout with a fraction of the effort and none of the heavy cream overload. The sauce stays silky from soaked cashews instead of a ton of butter, so it tastes luxurious without weighing you down.
Why This Gravy Stays in the Rotation
The tang from the tomatoes and the gentle sweetness of sautéed onions hit the same note that makes butter masala so satisfying. I keep coming back to this version because the cashew cream gives it body without turning greasy, and the spice blend is mellow enough that my kids ask for seconds.
Leftovers taste even better the next day after the fenugreek and garam masala settle in. That means one batch covers dinner tonight and lunch tomorrow.
Ingredients

- 14 oz paneer, cubed: I use store-bought, but firm homemade paneer works if you keep it in warm water until the sauce is ready.
- 2 tbsp oil and 1 tbsp butter: the oil prevents the butter from burning while the butter adds that unmistakable aroma.
- 1 medium onion, thinly sliced: a yellow or white onion turns sweet and jammy as it cooks.
- 4 medium tomatoes, roughly chopped: ripe Roma tomatoes give the brightest flavor; canned whole tomatoes are fine in a pinch.
- 1 tbsp ginger-garlic paste: fresh grated works too, just double the amount.
- 12 whole cashews, soaked in hot water for 15 minutes: this is the secret to the creamy body without a cream overload.
- 1 tsp cumin seeds
- 1 tsp Kashmiri red chili powder: for color and a gentle heat; use half smoked paprika if you do not have it.
- ½ tsp turmeric powder
- 1 tsp garam masala
- 1 tsp dried fenugreek leaves (kasuri methi): crumble them between your palms before adding to release the aroma.
- ½ tsp sugar: a tiny amount softens the tomato tang.
- Salt to taste
- 2 tbsp heavy cream or coconut cream for garnish: optional but makes the finish silky.
Easy Swaps
- Dairy-free: swap the paneer for extra-firm tofu pressed and pan-fried first; use coconut cream in the sauce and a neutral oil instead of butter.
- Nut-free: replace the cashews with ¼ cup of heavy cream, added at the end, but the sauce will be thinner.
- Extra heat: toss in a slit green chili along with the onions, or increase the chili powder to 1½ tsp.
- Protein swap: cubed chicken thighs work beautifully; just sear them before adding to the simmering gravy.
If you enjoy this kind of creamy tomato base, you will probably like Palak Paneer too.
How to Make Paneer Butter Masala Gravy
Step 1: Sauté the Aromatics

Heat the 2 tbsp oil and 1 tbsp butter in a heavy pan over medium heat. When the butter melts, toss in the 1 tsp cumin seeds and let them sizzle for about 30 seconds until they turn a shade darker and smell nutty. Add the sliced onion and cook, stirring now and then, for about 8 minutes until the edges turn deep golden.
The onion should look soft and almost jammy at this stage, with a sweet smell filling the kitchen. If you rush and leave them pale, the gravy will miss that rich, backbone sweetness.
Step 2: Soften the Tomatoes

Stir in the 1 tbsp ginger-garlic paste and cook for 1 minute until the raw smell fades. Then add the chopped tomatoes, ½ tsp turmeric, 1 tsp Kashmiri red chili powder, and a pinch of salt. Cover the pan and let everything cook on medium-low for about 10 minutes, stirring twice in between.
The tomatoes will break down into a chunky, glossy pulp. When you press one with the spatula, it should collapse with almost no resistance, and the mixture will look like a thick, dark-red jam.
Step 3: Blend the Base

Turn off the heat and let the mixture cool for 5 minutes. Drain the soaked 12 cashews and add them to the pan, then transfer everything to a blender jar. Pour in ½ cup of water and blend until you get a smooth, creamy purée. If the blender struggles, add another 2 tbsp of water.
Wipe the pan clean and return the blended purée through a fine mesh strainer, pushing it with the back of a spoon. This step removes any tomato skin or onion threads, so the final gravy feels restaurant-smooth.
Step 4: Simmer the Gravy

Place the strained purée back on medium heat. Stir in the 1 tsp garam masala, ½ tsp sugar, and salt to taste. Let the gravy come to a gentle bubble, then reduce the heat to low and simmer uncovered for 5 to 6 minutes, stirring often. The sauce will thicken and darken slightly, and small bubbles will pop slowly around the edges.
You are looking for a consistency that coats the back of a spoon and holds a line when you swipe a finger through it. If it feels too thick, add a splash of warm water.
Step 5: Fold in the Paneer and Serve

Gently slide the 14 oz paneer cubes into the simmering gravy and cook for 3 minutes just until they warm through. Crumble the dried fenugreek leaves between your palms, sprinkle them over the top, and stir. Turn off the heat and drizzle the 2 tbsp cream in a swirl if you are using it.
Ladle the gravy into a bowl while it is still hot and serve with warm chapati right away. The paneer stays soft and pillowy when you do not boil it.
Getting the Texture Right
- Soak the cashews fully: even 15 minutes in hot water makes a big difference in how smoothly they blend; skipping this gives you a gritty sauce.
- Do not skip the strainer: straining the purée is the only way to get that silky texture you expect from butter masala, and it takes under a minute.
- Paneer timing: add the paneer at the very end and just warm it through; simmering it for too long makes the cubes rubbery.
- If the gravy splits: a teaspoon of warm water whisked in gently usually brings it back together, especially if you used cream.
Simmer times by gravy thickness:
| Desired consistency | Simmer time on low | Stir frequency |
|---|---|---|
| Pourable, coats rice | 4 to 5 mins | Every 30 seconds |
| Thick, clings to chapati | 6 to 7 mins | Constantly |
| Very thick, scoopable | 8 to 9 mins | Constantly, with occasional heat adjustments |
Storing Leftovers
- Refrigerate: cool the gravy completely and store in an airtight container for up to 3 days. The paneer stays tender if you keep it submerged in sauce.
- Reheating: warm in a pan over low heat with a splash of water to loosen the sauce. Stir gently to avoid breaking the paneer cubes. The microwave works in a pinch, but the paneer firms up slightly.
What To Serve With Paneer Butter Masala
Soft, whole-wheat chapati are the obvious partner because they soak up the gravy without tearing. A side of cumin rice or jeera rice works when you want a bigger meal, and a simple kachumber salad of diced cucumber, onion, and tomato with lemon juice cuts through the richness beautifully. If you have extra time, warm, flaky paratha turns it into a weekend spread.
Frequently Asked Questions
Can I use canned tomatoes instead of fresh?
Yes. Use one 15 oz can of whole peeled tomatoes, drained of excess liquid, and reduce the simmer time in step 2 to about 8 minutes.
How do I make this vegan?
Swap the paneer for pan-fried tofu, use only oil instead of butter, and finish with coconut cream. The cashew base is already dairy-free.
My gravy tastes too tangy. What can I do?
The sugar in the recipe balances the tomatoes, but if yours are especially sharp, add an extra ½ teaspoon of sugar and a tablespoon of cream. Stir well and taste again.
Can I freeze this gravy?
The base freezes well for up to 2 months without the paneer. Make the gravy up to step 4, cool it, and freeze. Thaw and reheat gently, then add the paneer and cream fresh.

Paneer Butter Masala Gravy Recipe
Ingredients
Method
- Heat oil and butter in a pan over medium heat. Add cumin seeds and let sizzle 30 seconds. Add onion, cook 8 minutes until deep golden.
- Stir in ginger-garlic paste, cook 1 minute. Add tomatoes, turmeric, chili powder, and salt. Cover and cook 10 minutes until tomatoes break down.
- Cool mixture 5 minutes. Add drained cashews and ½ cup water, blend to a smooth purée. Return to pan through a fine strainer.
- Stir in garam masala, sugar, and salt. Simmer on low for 5 to 6 minutes, stirring often, until sauce coats a spoon.
- Add paneer cubes and cook 3 minutes. Crumble fenugreek leaves on top, turn off heat, and drizzle cream. Serve hot.
