Indian tomato curry is a warmly spiced stovetop curry built around ripe tomatoes, onion, ginger, garlic, and chickpeas, served with rice or flatbread. Home-style versions vary across India and beyond; this one balances the tomatoes’ tang with gentle spices and optional coconut milk for a saucy, satisfying meal.
Ingredients
- 1 tablespoon (15 ml) neutral oil, such as canola or sunflower oil
- 1 medium yellow onion, finely diced, about 1 cup (150 g)
- 4 garlic cloves, finely chopped or grated, about 12 g
- 1 tablespoon (15 g) finely grated fresh ginger
- 1 small green chile, minced, about 5 g, optional
- 1 teaspoon (2 g) cumin seeds
- 2 teaspoons (4 g) ground coriander
- ½ teaspoon (1.5 g) ground turmeric
- 1 teaspoon (2 g) Kashmiri chili powder; or use ½ teaspoon (1 g) paprika plus a pinch of cayenne
- 1 teaspoon (2 g) garam masala
- 1½ pounds (680 g) ripe tomatoes, diced, or two 14.5-ounce (411 g) cans of whole tomatoes, including their juice
- 1 teaspoon (6 g) fine salt, plus more to taste
- ¾ cup (180 ml) water
- Two 15-ounce (425 g) cans chickpeas, drained and rinsed, about 3 cups (500 g) drained
- ½ cup (120 ml) unsweetened coconut milk, optional
- 1 tablespoon (15 ml) lemon juice, plus more to taste
- ⅓ cup (10 g) chopped fresh cilantro, including tender stems if desired
Instructions
- Prepare the ingredients. Dice the onion and tomatoes, chop the garlic, grate the ginger, and mince the chile if using. Drain and rinse the chickpeas, measure the spices, and keep the ingredients near the stove. This prep takes about 15 minutes. If using canned whole tomatoes, crush them by hand or with a spoon as you add them to the pan.
- Soften the onion. Set a large, heavy saucepan or deep skillet over medium heat and add the oil. When it shimmers, add the onion and cook for 8 minutes, stirring every minute or two. The onion should soften and turn translucent with a few golden edges; lower the heat if it browns quickly. Taking time here gives the curry a sweeter, fuller base.
- Cook the aromatics and spices. Add the garlic, ginger, and optional green chile. Stir for 1 minute, until fragrant. Add the cumin seeds, ground coriander, turmeric, chili powder, and garam masala, then stir for 1 minute so the spices bloom in the oil. Keep them moving and do not let the garlic or ground spices scorch; if the pan looks dry, add a splash of water.
- Cook down the tomatoes. Add the tomatoes and salt, scraping up any browned bits from the bottom of the pan. Bring the mixture to a steady simmer, then cook uncovered for 12 minutes, stirring occasionally. Fresh tomatoes should break down and release their juices. If they are especially firm, crush them with the back of a spoon as they soften. The sauce is ready for the next step when it looks less watery and the onion is tender.
- Simmer with chickpeas. Stir in the water and chickpeas. Bring the curry back to a gentle simmer, then cook uncovered for 10 minutes, stirring once or twice so the chickpeas heat through and the sauce thickens around them. For a thicker texture, mash a few chickpeas against the side of the pan and stir them back in. If the sauce becomes thicker than you like, add water a tablespoon or two at a time.
- Finish and season. Stir in the coconut milk, if using, and simmer for 3 minutes. Turn off the heat and mix in the lemon juice and cilantro. Taste the sauce: add salt if it tastes flat, more lemon juice if it needs brightness, or a small pinch of chili powder for more heat. Let the curry stand for 2 minutes before serving so the sauce settles. The listed cooking time is 35 minutes; this brief stand is included in the total time.
Tips
- Choose tomatoes that suit the season. Ripe fresh tomatoes make a bright, slightly textured sauce, but canned whole tomatoes are a dependable choice when fresh ones are pale or out of season. Crush canned tomatoes as they go in, and use their juice so the curry keeps its tomato flavor.
- Adjust the heat thoughtfully. Kashmiri chili powder adds red color and mild warmth. Paprika is a useful substitute, but it is less traditionally flavored; a small pinch of cayenne restores some heat. Leave out the green chile for a milder curry, or add it with the aromatics for more pronounced heat.
- Balance acidity instead of adding lots of sugar. Tomato acidity varies. First finish the sauce with lemon and salt, then taste. Coconut milk softens sharpness and makes the curry creamier. If the tomatoes are still unusually tart, add no more than ½ teaspoon (2 g) sugar and taste again.
- Prevent a thin or scorched sauce. Let the tomatoes simmer uncovered so excess liquid can evaporate, and stir more often as the sauce thickens. If spices stick before tomatoes go in, add a spoonful of water rather than extra oil. Avoid turning the heat high to hurry the simmer; it can burn the onion and garlic.
Serving Suggestions
Spoon the curry over steamed basmati rice, jeera rice, or another plain long-grain rice, which soaks up the tomato sauce without competing with its spices. Warm roti, chapati, or naan makes a good option for scooping. For a more complete spread, serve it alongside a simple cucumber salad, sliced onion with lemon, or a bowl of plain yogurt. A little chopped cilantro and a wedge of lemon at the table let everyone adjust the freshness to taste.
The chickpeas make this a substantial main dish, but the curry also works as one part of a larger meal. Keep side dishes simply seasoned so the garam masala, cumin, and tomato remain easy to taste. If serving with rice, start the rice while the tomatoes simmer; it should be ready around the time the curry finishes. For a less saucy plate, simmer the curry a little longer, or serve extra sauce in a small bowl on the side.
Variations
Make it without chickpeas: Leave them out and serve the tomato curry as a sauce with rice, vegetables, or grilled paneer. To keep the meal filling, add 1 pound (450 g) of cubed potatoes, par-cooked until nearly tender, with the water and simmer until soft. Potatoes absorb sauce, so add more water as needed and check that they are cooked through before serving.
Use another bean: Two cans of drained kidney beans or butter beans can replace the chickpeas in equal drained quantity. Kidney beans give a firmer, more earthy result, while butter beans make the curry softer and creamier. Stir either into the sauce at the same point as the chickpeas and simmer until hot.
Make it dairy-free and creamy: The recipe is dairy-free as written when made with a dairy-free oil. Coconut milk is optional, but adds body and a subtle coconut note; omit it for a sharper, more tomato-forward sauce. Cashew cream can also be stirred in at the end, though it gives a richer, less bright finish.
Add greens: Stir in 3 packed cups (90 g) baby spinach during the final 2 minutes, just until wilted. For sturdier greens such as chopped kale, add them with the chickpeas and simmer until tender. Greens bring their own moisture, so check the sauce thickness before adding extra water.
Storage and Reheating
Cool the curry promptly and refrigerate it in a covered container within 2 hours of cooking. It keeps for 3–4 days in the refrigerator. The chickpeas will absorb some sauce as it sits, so the curry may be thicker the next day; loosen it with a splash of water when reheating. Store rice separately if possible so it does not soak up all the sauce.
For longer storage, freeze the cooled curry in meal-size airtight containers for up to 3 months for best quality. Leave a little space at the top because the liquid expands as it freezes. Thaw overnight in the refrigerator, or reheat from frozen over low heat with a few tablespoons of water and frequent stirring. Reheat leftovers until they reach 165°F (74°C), checking with a food thermometer; on the stovetop, stir throughout so the middle heats evenly. Avoid repeatedly cooling and reheating the same portion.
Frequently Asked Questions
Can I make Indian tomato curry with canned tomatoes?
Yes. Use two 14.5-ounce (411 g) cans of whole tomatoes, including the juice, in place of the fresh tomatoes. Crush them in the pan and cook for the same time, or a few minutes longer if the sauce still looks watery. Canned tomatoes can taste slightly sharper, so adjust the salt and lemon only after the curry has finished simmering.
Is this curry very spicy?
It is moderately mild when made with Kashmiri chili powder and no green chile. Spice strength differs by brand, so start with half the chili powder if you are sensitive to heat. You can add more near the end, but it is harder to reduce heat once it is in the pot. Garam masala is aromatic and warming, but it is not usually the main source of chile heat.
Can I make the curry ahead?
Yes. Make it up to 3 days ahead and refrigerate it promptly. The flavor settles as it rests, and the sauce often thickens, so add a little water while reheating. For the freshest color and texture, add cilantro and lemon juice just before serving rather than before chilling.
What can I use instead of garam masala?
A mild curry powder can stand in, although the flavor will be different and may be less fragrant. Start with ¾ teaspoon (about 2 g), taste at the end, and add more only if needed. If you have ground cumin and coriander but no garam masala, the curry will still work; it will simply lack some of garam masala’s warm finishing notes.
Why does my tomato curry taste sour?
Some tomatoes are more acidic than others, and undercooked tomatoes can taste especially sharp. Simmer the sauce until it thickens and loses its raw, watery edge, then taste again. Coconut milk, a little extra salt, or up to ½ teaspoon (2 g) sugar can soften the sourness. Add lemon only after balancing the sauce, since it increases acidity.
Related
- Traditional Indian Food Plate: A Simple Thali Recipe
- Traditional Indian Vegetarian Recipes: Chana Masala
- Bhindi Recipe: Indian Spiced Okra for an Easy Side
More recipes to cook
Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes
Spotted an error? Tell us and we will correct it (corrections policy).