Indian Beef Curry with Tomato Gravy

Steaming Indian Beef Curry with Tomato Gravy served over fluffy basmati rice with fresh cilantro garnish. Pin it
Steaming Indian Beef Curry with Tomato Gravy served over fluffy basmati rice with fresh cilantro garnish. | recipescooked.com

This hearty beef dish features succulent chunks slowly simmered in a deeply flavorful tomato-based sauce. The aromatic blend of toasted cumin, coriander, turmeric, and garam masala creates layers of warmth and complexity that develop beautifully over time.

The beef becomes melt-in-your-mouth tender after simmering for over an hour, while the tomatoes break down into a luscious, thickened gravy. Whole spices like cinnamon sticks, cloves, and bay leaves infuse the dish with authentic Indian restaurant quality.

Serve alongside fluffy basmati rice or warm naan bread to soak up every drop of the rich sauce. A dollop of cooling yogurt balances the gentle heat, and fresh cilantro adds bright, herbal notes to finish.

The first time I made this curry, my entire apartment building seemed to know. The spices hit the hot oil and that unmistakable fragrance of cumin and cinnamon drifted through the hallway, prompting three separate neighbors to knock on my door and ask what was happening in my kitchen.

I served this at my dinner party last winter during a snowstorm, and my friend who swore she hated beef curry went back for thirds. The way the beef falls apart after slow cooking while the sauce thickens into something almost luxurious is absolutely worth the wait.

Ingredients

  • Beef chuck: Chuck is perfect here because it has enough marbling to stay tender through long cooking, and cutting it into 2 inch cubes means it will cook evenly while becoming melt in your mouth soft
  • Cumin seeds: Whole cumin seeds bloomed in hot oil release this incredible nutty aroma that ground cumin just cannot achieve, and this step is what makes your kitchen smell like an authentic Indian restaurant
  • Onions: Finely chopped and cooked until they are deep golden brown is the foundation of the entire dish, so do not rush this step because those caramelized sugars become the backbone of the gravy
  • Tomatoes: Fresh ripe tomatoes break down beautifully but canned diced tomatoes work perfectly fine, especially when tomatoes are not in season
  • Yogurt: Adding yogurt at the end rather than the beginning prevents it from separating, and it creates this velvety finish that balances the spices
  • Whole spices: The bay leaves, cloves, and cinnamon stick infuse the oil with their aromatic oils, but remember to fish them out before serving so nobody accidentally bites into a whole clove

Instructions

Bloom the whole 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 1 minute until they become incredibly fragrant and the cumin seeds start to darken slightly
Caramelize the onions:
Add your finely chopped onions and cook them for about 8 minutes, stirring frequently because they need to reach a deep golden brown color which is absolutely essential for building that rich curry base
Add the aromatics:
Stir in the minced garlic, grated ginger, and sliced green chilies, cooking for about 2 minutes until the raw garlic smell disappears and everything smells wonderfully aromatic
Toast the ground spices:
Add all your ground spices including the coriander, turmeric, chili powder, garam masala, ground cumin, paprika, salt, and pepper, toasting them for just 1 minute to wake up their flavors
Brown the beef:
Add the beef cubes and brown them on all sides for about 5 minutes, letting them develop some nice color which adds depth to the final curry
Break down the tomatoes:
Stir in your chopped tomatoes and cook for 5 minutes until they start to soften and break down, creating a base for the sauce
Simmer low and slow:
Pour in the stock and water, bring everything to a boil, then reduce the heat to low, cover, and simmer for 1 hour, stirring occasionally to make sure nothing sticks to the bottom
Add the yogurt finish:
Remove the lid, stir in the yogurt, and continue simmering uncovered for another 20 to 30 minutes until the beef is completely tender and the sauce has thickened nicely
Final touches:
Taste and adjust your seasoning if needed, remove all the whole spices before serving, and garnish generously with fresh cilantro
Close-up of Indian Beef Curry with Tomato Gravy showing tender beef cubes in rich, spiced tomato sauce. Pin it
Close-up of Indian Beef Curry with Tomato Gravy showing tender beef cubes in rich, spiced tomato sauce. | recipescooked.com

This recipe has become my go to for Sunday meal prep because the house smells incredible all day and I end up with lunches for the entire week.

The Secret to Restaurant Quality Texture

After years of making this, I discovered that letting the curry sit for at least 15 minutes off the heat before serving gives the sauce time to thicken even further and allows the flavors to truly marry together.

Making It Your Own

Sometimes I add a handful of peas during the last 10 minutes of cooking for color and sweetness, or swap beef for lamb when I want something slightly more delicate in flavor.

Serving Suggestions That Work

While naan is classic, I actually love serving this over basmati rice that has been cooked with a pinch of saffron and a whole cardamom pod. The rice absorbs that spiced gravy beautifully.

  • Make a simple cucumber raita with yogurt, minced cucumber, and a pinch of cumin to cool things down
  • Pickle some red onions in vinegar and salt for about 20 minutes before serving
  • Warm your flatbreads in the oven while the curry rests for that authentic touch
Homemade Indian Beef Curry with Tomato Gravy paired with warm naan bread and lemon wedges on table. Pin it
Homemade Indian Beef Curry with Tomato Gravy paired with warm naan bread and lemon wedges on table. | recipescooked.com

There is something deeply satisfying about a curry that tastes like it simmered all day, even if the active cooking time was mostly just patience and occasional stirring.

Common Recipe Questions

Beef chuck is ideal for this dish as it becomes tender during slow cooking. The marbling and connective tissue break down beautifully, resulting in succulent, flavorful meat.

Absolutely. The flavors deepen and improve overnight. Store in the refrigerator for up to 3 days or freeze for up to 3 months. Reheat gently on the stovetop.

Reduce chili powder and omit green chilies for a milder version. Increase either for more heat. Remember that flavors will mellow slightly during cooking.

Yes. Cook on high pressure for 25-30 minutes, then let the pressure release naturally. Finish by simmering uncovered to thicken the sauce if needed.

Basmati rice, naan, roti, or any flatbread make perfect accompaniments. The sauce is delicious and you'll want something to soak it up.

Simply replace the plain yogurt with coconut yogurt or omit it entirely. The dish will still be rich and flavorful without the dairy component.

Indian Beef Curry with Tomato Gravy

Tender beef in aromatic spiced tomato gravy with bold 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
Incorporate 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
Season and Serve: Taste and adjust seasoning if needed. Remove whole spices before serving. 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.
Olivia Barnes

Sharing easy, wholesome recipes and kitchen inspiration for everyday home cooks.