Soups & Stews
This beef and tomato curry recipe delivers restaurant-quality depth in a single pot, where tender beef melts into a fragrant, spiced coconut sauce. The secret lies in slow-cooked spices that bloom into complex aromas while the beef transforms from tough to fork-tender. I developed this version after years of testing—balancing heat, sweetness, and acidity to create a curry that's both approachable and deeply satisfying.
The foundation starts with properly toasted whole spices—cumin, coriander, and cardamom—that release their essential oils before meeting the onions and garlic. A splash of tomato paste forms the base, while coconut milk creates that signature velvety texture. The beef cooks low and slow, absorbing all those flavors until it practically dissolves when you stir. This isn't just another curry; it's a one-pot meal that builds layers of warmth and richness with minimal effort.
What you'll end up with is a pot of golden, aromatic curry where the beef is so tender it falls apart at the touch, swimming in a sauce that's perfectly balanced—sweet from tomatoes, creamy from coconut, and just spicy enough to linger. The aroma alone will have everyone gathering at the table, and the taste? That's where the magic happens. Each bite delivers that perfect harmony of textures and flavors that makes this curry a weeknight staple.
Serve it over basmati rice for the full experience, or with warm naan to soak up every last drop of that velvety sauce. The leftovers actually improve overnight as the flavors meld further. Here's how to make it—step by step, with all the professional techniques simplified for home cooks.
Ingredients for beef and tomato curry
These 15 ingredients create a rich, fragrant curry with tender beef and velvety coconut sauce.
| Ingredient | Amount | Notes |
|---|---|---|
| Beef Chuck Roast 🥩 | 1 ½ lb | Cut into 1-inch cubes |
| Yellow Onions 🧅 | 1 whole | Medium, thinly sliced |
| Garlic Cloves 🧄 | 6 cloves | Peeled, minced |
| Cumin Seeds 🌿 | 1 tbsp | Toasted until fragrant |
| Ground Coriander 🌿 | 1 tbsp | Freshly ground preferred |
| Green Cardamom Pods 🌿 | 6 whole | Lightly crushed |
| Tomato Paste 🍅 | ½ cup | High-quality, no sugar added |
| Coconut Milk 🥥 | 13 ½ oz | Full-fat canned |
| Diced Tomatoes 🍅 | 1 can (14.5 oz) | San Marzano preferred |
| Fresh Ginger 🌿 | 1 inch | Peeled, grated |
| Garam Masala 🌶️ | 2 tsp | Store-bought or homemade |
| Turmeric Powder 🌿 | ½ tsp | Freshly ground preferred |
| Salt 🧂 | 1 ½ tsp | Diamond Crystal preferred |
| Black Peppercorns 🌶️ | ½ tsp | Freshly cracked |
| Vegetable Oil 🫒 | 2 tbsp | For sautéing |
The beef is everything here—chuck roast gives that melt-in-your-mouth texture, but sirloin works if you're in a hurry. Most grocery stores carry pre-cubed chuck, which saves time. If you're buying a whole roast, ask the butcher to cube it for you. For the spices, Penzeys or the bulk bins at Whole Foods are my go-tos, but honestly, the regular grocery store stuff works fine as long as it's not ancient. Toast your whole spices (cumin, cardamom) in a dry pan for 30 seconds—trust me, that smell alone makes it worth it.
No garam masala? Mix 1 tsp each of cinnamon, cumin, coriander, and cloves—it's not identical, but close enough. Fresh ginger is ideal, but powdered works in a pinch (use half the amount). The tomato paste can be that squeeze tube from Trader Joe's—no waste, and it keeps forever. Running low on coconut milk? Light coconut milk works, but you'll need to add a splash of water to keep the consistency right. And if you're worried about the curry being too spicy, reduce the black peppercorns to 1/4 tsp—you can always add more later.
This curry tastes even better the next day as the flavors meld. Store leftovers in an airtight container for up to 5 days in the fridge, or freeze portions for 3 months. I always make double—one pot for dinner, one for lunches. The sauce thickens when chilled, so just add a splash of water or coconut milk when reheating. And if you're serving it with rice, cook the rice in the same pot after removing the beef—absorbs all that delicious sauce.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this recipe—just brown the beef, toss in onions and garlic, then let the spices and tomatoes do their thing. No extra pans, no fuss, and honestly, the cleanup is almost nonexistent.
- Deep, Warm Spice Bomb: That toasted cumin and coriander? They hit you with earthy, smoky warmth that lingers. The beef gets so tender it practically melts, and the tomatoes caramelize into a rich, tangy sauce that makes every bite feel like a hug.
- Weeknight to Potluck Hero: Make a double batch on Sunday, and you’ve got dinner covered for days. Or bring it to a gathering—it’s hearty enough for a crowd but still feels special, like you actually put in effort (without the stress).
- Budget-Friendly Feast: Chuck roast stretches for miles, and the spices cost pennies. I’ve fed four people for under $15, and they always ask for seconds. Leftovers? Even better the next day—just reheat and enjoy.
Step-by-step instructions for beef and tomato curry
Here's how to make this rich, spiced curry with tender beef and velvety coconut sauce.
Sear the Beef Until Deeply Browned
Heat the 2 tablespoons vegetable oil in a large, heavy pot over medium-high heat until shimmering. Add the 1.5 lb Beef Chuck Roast, cut into 1-inch cubes, in a single layer. Don't overcrowd the pot—work in batches if needed. Let the beef sear undisturbed for 3-4 minutes until deeply browned on one side before gently turning. You're building flavor in that crust, so resist the urge to move it too soon.
Once all sides are golden brown, transfer the beef to a plate and set aside. The beef should be well-coated with caramelized bits—this forms the flavor base for your curry. If your pot has accumulated excess fat, leave about 1 tablespoon for cooking the aromatics, then pour off the rest to keep your sauce rich but not greasy.
Toast the Spices and Build the Flavor Base
In the same pot over medium heat, add the 1 whole Yellow Onions, sliced, and cook for 5-6 minutes until softened and golden. Add the 6 cloves Garlic Cloves, minced, and cook for 30 seconds until fragrant—don't let it burn. Then add the 1 tbsp Cumin Seeds and 6 whole Green Cardamom Pods (lightly crushed). Toast for 1 minute until the cumin sizzles and releases its aroma.
Stir in the 1 tbsp Ground Coriander, 0.5 tsp Turmeric Powder, and 0.5 tsp Black Peppercorns. Cook for 30 seconds to toast the spices gently. This step is where the magic happens—those spices should be warm and aromatic, not bitter. Add the 0.5 cup Tomato Paste and stir for 2 minutes until it darkens slightly and coats the onions. You're creating a rich, spiced paste that will form the heart of your curry.
Simmer the Beef in Spiced Tomato Sauce
Return the browned beef to the pot. Pour in the 1 can (14.5 oz) Diced Tomatoes and 13.5 oz Coconut Milk, stirring to combine. Add the 1 inch Fresh Ginger, grated, and bring to a gentle simmer over medium-low heat. Partially cover the pot and let it cook for 45 minutes, stirring occasionally. The sauce should reduce slightly and coat the beef in a glossy, velvety layer.
Here's the thing—you want the beef tender but not falling apart. After 45 minutes, check for doneness by piercing a piece with a fork. If it's still slightly firm, continue simmering for another 15-20 minutes. The sauce should be thick enough to coat the back of a spoon but still silky, not gluey. If it's too thick, add 2-3 tablespoons water to loosen it.
Finish with Garam Masala and Season to Taste
Once the beef is tender, stir in the 2 tsp Garam Masala and 1.5 tsp Salt. Simmer for 5 minutes to let the garam masala bloom and infuse the curry with its warm, earthy notes. Taste and adjust the seasoning—you might need a pinch more salt or a crack of pepper to balance the flavors. The curry should be rich, spiced, and perfectly balanced between the sweetness of the tomatoes, the creaminess of the coconut milk, and the depth of the spices.
Let the curry rest off the heat for 5 minutes before serving. This gives the flavors time to meld and the sauce to thicken slightly. Serve hot over steamed basmati rice or with warm naan bread. The beef should be fork-tender, falling apart easily, and swimming in a sauce that's velvety yet still vibrant with color. Garnish with fresh cilantro if you like, but it's already packed with flavor.
Pro Tips For Making Beef And Tomato Curry
- Brown the Chuck First: I learned this the hard way—skipping the sear means flavorless beef. Cut the chuck into 1.5-inch chunks, heat oil in a heavy pot until shimmering, then work in batches. Let each piece sit for 2 full minutes before stirring; that crust locks in juices and deepens the curry’s richness.
- Toast Spices Low and Slow: Cumin seeds burn faster than you think. Dry-toast them in the same pot you’ll cook the curry—just until they smell like hay and rain (about 30 seconds on medium-low). Then add onions; the residual heat will bloom their sweetness without turning them bitter. (Yes, even if you’re impatient like me.)
- Simmer, Don’t Boil: After adding tomatoes and liquid, keep the heat at a gentle simmer—not a rolling boil. Chuck roast needs time to tenderize, and boiling turns it tough. If it’s not bubbling steadily, you’re either too hot or too cold. Adjust to a whisper of a bubble, then let it work its magic for at least 2 hours.
- Deglaze with Tomato Paste: This isn’t the prettiest method, but it works: After browning the beef, scrape up every last bit of crust with a wooden spoon, then stir in 1-2 tablespoons of tomato paste before adding the rest of the tomatoes. It thickens the sauce faster and cuts the metallic taste of raw onions. (Your future self will thank you.)
Troubleshooting this dish
Sauce Too Thin?
If your curry sauce is thinner than expected, simmer uncovered for 5-10 minutes to reduce it naturally. For quicker results, mix 1 tbsp cornstarch with 2 tbsp cold water, stir into the sauce, and simmer 2 minutes until thickened. Avoid over-reducing—you want a velvety texture, not gluey. 🌡️
Beef Not Tender Enough
If your beef remains tough after 1.5 hours, it likely needs more time. Increase simmering to 2-3 hours at low heat, stirring occasionally. For faster results, add 1 cup beef broth and cover to steam. Never rush this step—tender beef is the heart of your curry. A meat thermometer should read 203°F for perfect doneness.
Spices Too Overpowering
Balance excess heat by adding 1 tbsp honey or 2 tbsp coconut sugar to sweeten the sauce. Stir in ½ cup plain yogurt or ¼ cup heavy cream to cool the spice. For immediate relief, add 1 cup diced cucumber or ½ cup chopped mint at serving time. The key is contrast—acid or dairy always helps. 🌿
Curry Tastes Bland
Boost flavor by adding 1 tsp fish sauce (for umami depth) or ½ tsp smoked paprika. A splash of lemon juice brightens the tomatoes, while a pinch of asafetida (hing) adds complexity. For extra richness, stir in 2 tbsp butter or 1 tbsp coconut oil at the end. Taste as you go—curry builds flavor gradually.
Onions Burned Before Softening
Lower heat to medium-low and cook onions slowly for 8-10 minutes, stirring frequently. Avoid overcrowding the pot—work in batches if needed. For extra insurance, add 2 tbsp water when adding onions to steam them gently. Golden onions are sweet and aromatic; burned onions turn bitter. 🧅
Coconut Milk Separating
If the sauce splits, whisk in 1 tbsp cornstarch mixed with 2 tbsp water and simmer until smooth. For prevention, stir the curry frequently during cooking. Avoid sudden temperature changes—never add cold coconut milk to a hot pot. A splash of lemon juice also helps emulsify the sauce naturally.
Nutrition facts
Frequently asked questions
Can I substitute chicken or lamb for beef in this curry?
For chicken, use 1.5 lbs boneless thighs or breasts and reduce cooking time to 25-30 minutes—chicken cooks faster than beef. For lamb, 1.5 lbs shoulder or leg works beautifully but may need 1.5-2 hours of simmering. Adjust spices slightly: lamb benefits from extra ½ tsp cumin and ¼ tsp cinnamon for depth.
How do I make this curry less spicy?
Start by reducing the black peppercorns to ¼ tsp and omit half the garam masala. For immediate relief, stir in ½ cup plain yogurt or ¼ cup heavy cream at the end. A splash of lemon juice also brightens flavors without adding heat. Taste as you go—you can always add more spice later!
Can I make this curry in an Instant Pot?
Yes! Sear the beef as directed, then add all ingredients except garam masala. Cook on high pressure for 30 minutes, then quick-release. Stir in garam masala and simmer 5 minutes to bloom flavors. The Instant Pot version finishes in 45 minutes total. For extra tenderness, add ½ cup beef broth to the pot.
What's the best way to store leftovers?
Let the curry cool completely, then transfer to an airtight container. It keeps in the fridge for 5 days or freezes for 3 months. For reheating, warm gently on the stove with 1-2 tbsp water to restore sauce consistency. The flavors actually deepen overnight!
Why did my curry separate into layers?
This happens when coconut milk isn't fully incorporated. Whisk in 1 tbsp cornstarch mixed with 2 tbsp cold water and simmer 2 minutes until smooth. For prevention, stir frequently during cooking. A splash of lemon juice also helps emulsify naturally. The sauce should be velvety, not oily.
