Indian Beef Curry with Tomato Gravy

Steaming Indian Beef Curry with Tomato Gravy simmering in a pot, garnished with cilantro and served alongside fluffy basmati rice. Save
Steaming Indian Beef Curry with Tomato Gravy simmering in a pot, garnished with cilantro and served alongside fluffy basmati rice. | spoonfulstreet.com

This aromatic beef dish features tender chunks slowly simmered in a rich, spiced tomato-based gravy. The beef becomes fork-tender after nearly two hours of gentle cooking, absorbing layers of warm spices including cumin, coriander, turmeric, and garam masala. The tomato base creates a luscious, thickened sauce that clings beautifully to every piece. A touch of yogurt stirred in near the end adds subtle creaminess and balances the heat from green chilies. This hearty preparation delivers authentic Indian restaurant flavors to your home kitchen, perfect when served over fluffy basmati rice or alongside warm naan for soaking up every drop of the velvety gravy.

The smell of whole cumin seeds hitting hot oil still transports me back to my friend Priya's tiny kitchen in Mumbai, where I first learned that patience is the real secret to authentic curry. We spent three hours that evening just talking and stirring, her explaining how each spice needs its moment to bloom while I scribbled notes on a crumpled receipt.

Last winter, during a particularly brutal snowstorm, I made a double batch for neighbors who'd just welcomed a new baby. They texted me hours later saying the house smelled incredible and they'd already fought over the last serving, which is basically the highest compliment a home cook can receive.

Ingredients

  • 800 g (1.75 lbs) beef chuck: Chuck has this perfect marbling that breaks down beautifully during long simmering, becoming fork-tender while still holding its shape
  • 2 tablespoons vegetable oil: You need a neutral oil here so the spices stay the star of the show
  • 2 medium onions: I used to rush this step but taking the time to caramelize them properly makes all the difference in depth
  • 4 garlic cloves and 1 tablespoon fresh ginger: This aromatic base is non-negotiable for that authentic Indian flavor profile
  • 2 green chilies: Leave them whole if you want mild heat, sliced if you're feeling brave
  • 400 g (14 oz) ripe tomatoes: Fresh tomatoes break down into the most silky gravy, though canned work in a pinch
  • 1 teaspoon cumin seeds: Whole spices toasted in oil release these incredible oils you just can't get from ground versions
  • 1 tablespoon ground coriander: Adds this lovely citrusy undertone that balances the beef's richness
  • 1 teaspoon ground turmeric: Besides that gorgeous golden color, it brings this subtle earthiness
  • 1 teaspoon chili powder and 1 teaspoon paprika: Together they give you color and heat without overwhelming the other spices
  • 1 teaspoon garam masala: This is the finishing touch that makes everything taste complete
  • 2 teaspoons salt and 1 teaspoon black pepper: Don't be shy with seasoning, the beef can handle it
  • 2 bay leaves, 4 whole cloves, 1 cinnamon stick: These whole spices perfume the oil at the start, infusing every layer
  • 250 ml (1 cup) beef or chicken stock: Homemade is ideal, but a good quality stock works perfectly
  • 100 ml (1/2 cup) water: Helps create the right consistency as everything simmers together
  • 120 ml (1/2 cup) plain yogurt: Stirred in at the end, it adds this creamy tang that cuts through the richness
  • Fresh cilantro and lemon wedges: That final bright element that makes the whole dish sing

Instructions

Wake up the spices:
Heat your oil in a large heavy-bottomed pot over medium heat, then add the cumin seeds, bay leaves, cloves, and cinnamon stick, letting them sizzle for about a minute until your kitchen fills with this incredible toasty fragrance
Build the foundation:
Add those chopped onions and cook them slowly, stirring often, until they turn this deep golden brown color that takes about 8 minutes of patient attention
Add the aromatics:
Stir in the garlic, ginger, and green chilies, cooking for just 2 minutes until the raw garlic smell mellows into something warm and inviting
Toast the ground spices:
Dump in all your ground spices—coriander, turmeric, chili powder, garam masala, ground cumin, paprika, salt, and pepper—stirring constantly for 1 minute so they bloom in the hot oil without burning
Brown the beef:
Add the beef cubes and let them sear, turning them occasionally so they develop this nice brown crust on all sides, which takes about 5 minutes
Introduce the tomatoes:
Stir in your chopped tomatoes and cook for 5 minutes until they break down and start looking saucy, creating the base for your gravy
Start the simmer:
Pour in the stock and water, bring everything to a bubble, then lower the heat, cover it up, and let it gently simmer for an hour, giving it a stir now and then
Add the creamy finish:
Remove the lid and stir in the yogurt, letting it simmer uncovered for another 20 to 30 minutes until the beef is falling-apart tender and the sauce has thickened into this rich, velvety gravy
Final touches:
Taste it and add more salt or pepper if needed, then fish out those whole spices before serving
Serve it up:
Sprinkle with fresh cilantro and serve it hot alongside basmati rice or warm naan, with lemon wedges on the table for squeezing over
A rich bowl of Indian Beef Curry with Tomato Gravy ladled over white rice, featuring tender beef cubes and vibrant spices. Save
A rich bowl of Indian Beef Curry with Tomato Gravy ladled over white rice, featuring tender beef cubes and vibrant spices. | spoonfulstreet.com

My brother-in-law, who claims he doesn't like curry, went back for thirds the first time I made this for Sunday dinner. Seeing someone change their mind about a dish they'd written off—that's the magic of really good food.

Making It Your Own

I've started adding a tablespoon of tomato paste along with the fresh tomatoes, and it gives the gravy this extra depth that people always ask about. If you like things spicy, try increasing the chili powder or throwing in an extra green chili.

Perfecting The Texture

The key to that restaurant-quality gravy is letting it cook uncovered after adding the yogurt. This allows excess liquid to evaporate while the sauce concentrates into something velvety and rich that coats every piece of beef.

Meal Prep Magic

This curry actually improves overnight as the spices meld and deepen, making it perfect for meal prep or feeding a crowd. I always make a double batch and portion some for the freezer.

  • Let the curry cool completely before refrigerating to prevent condensation from thinning the sauce
  • Store rice separately and reheat gently with a splash of water to restore the creamy texture
  • Freeze in portions for those nights when you want something incredible but don't want to cook
Close-up of Indian Beef Curry with Tomato Gravy in a skillet, topped with fresh cilantro and paired with warm naan bread. Save
Close-up of Indian Beef Curry with Tomato Gravy in a skillet, topped with fresh cilantro and paired with warm naan bread. | spoonfulstreet.com

There's something deeply satisfying about serving this curry, watching people's eyes light up as they take that first bite. Good food brings people together, and this dish has a way of doing that beautifully.

Recipe Questions & Answers

Chuck is ideal because its marbling keeps the meat tender during long simmering. The connective tissue breaks down beautifully, creating melt-in-your-mouth texture while adding richness to the gravy.

Absolutely. Brown the beef and aromatics first on the stovetop, then transfer everything to your slow cooker. Cook on low for 6-8 hours or high for 4-5 hours until the beef is fork-tender.

Reduce the chili powder and omit the green chilies for a milder version. For more heat, increase the chili powder or add a split serrano pepper. The yogurt also helps temper spiciness naturally.

Adding yogurt after the main cooking time prevents it from separating or curdling. It also keeps the dairy proteins intact, contributing to a smoother, creamier finished sauce.

This dish actually improves overnight. The flavors meld and deepen, making it perfect for meal prep. Store in the refrigerator for up to 3 days or freeze for up to 3 months.

Coconut yogurt works beautifully for a dairy-free version while maintaining creaminess. Coconut cream also adds richness, though it will subtly alter the flavor profile.

Indian Beef Curry with Tomato Gravy

Tender beef chunks simmered in aromatic spiced tomato gravy with authentic Indian flavors.

Prep 20m
Cook 90m
Total 110m
Servings 4
Difficulty Medium

Ingredients

Meats

  • 1.75 lbs beef chuck, cut into 2-inch cubes

Vegetables & Aromatics

  • 2 tablespoons vegetable oil
  • 2 medium onions, finely chopped
  • 4 garlic cloves, minced
  • 1 tablespoon fresh ginger, grated
  • 2 green chilies, sliced (optional, adjust to taste)
  • 14 oz ripe tomatoes, chopped (or 1 can diced tomatoes)

Spices

  • 1 teaspoon cumin seeds
  • 1 tablespoon ground coriander
  • 1 teaspoon ground turmeric
  • 1 teaspoon chili powder
  • 1 teaspoon garam masala
  • 1 teaspoon ground cumin
  • 1 teaspoon paprika
  • 2 teaspoons salt (adjust to taste)
  • 1 teaspoon black pepper
  • 2 bay leaves
  • 4 whole cloves
  • 1 cinnamon stick

Liquids

  • 1 cup beef or chicken stock
  • 1/2 cup water
  • 1/2 cup plain yogurt

Garnish

  • Fresh cilantro leaves, chopped
  • Lemon wedges

Instructions

1
Toast Whole Spices: Heat oil in a large, heavy-bottomed pot over medium heat. Add cumin seeds, bay leaves, cloves, and cinnamon stick. Sauté for 1 minute until fragrant.
2
Caramelize Onions: Add onions; cook until golden brown, about 8 minutes, stirring frequently.
3
Add Aromatics: Stir in garlic, ginger, and green chilies. Cook for 2 minutes until aromatic.
4
Toast Ground Spices: Add ground coriander, turmeric, chili powder, garam masala, ground cumin, paprika, salt, and pepper. Toast spices for 1 minute.
5
Brown the Beef: Add beef cubes and brown on all sides, about 5 minutes.
6
Add Tomatoes: Stir in tomatoes and cook for 5 minutes, allowing them to soften.
7
Simmer Covered: Pour in stock and water. Bring to a boil, then reduce heat to low. Cover and simmer for 1 hour, stirring occasionally.
8
Add Yogurt and Finish: Remove lid; stir in yogurt. Simmer uncovered for another 20–30 minutes, until beef is tender and sauce is thickened.
9
Final Seasoning: Taste and adjust seasoning if needed. Remove whole spices before serving.
10
Serve: Garnish with cilantro and serve hot with basmati rice or naan, and lemon wedges.
Additional Information

Equipment Needed

  • Large heavy-bottomed pot or Dutch oven
  • Chef's knife and cutting board
  • Wooden spoon
  • Measuring cups and spoons
  • Ladle

Nutrition (Per Serving)

Calories 445
Protein 46g
Carbs 18g
Fat 22g

Allergy Information

  • Contains dairy (yogurt). Dairy-free option available as noted.
  • Always check packaged spice mixes and yogurt for hidden allergens.
Jenna Collins

Home cook sharing simple, wholesome recipes & practical kitchen tips for busy families.