Indian Beef Curry with Tomato Gravy

Golden Indian beef curry with tomato gravy served over fluffy white basmati rice Save
Golden Indian beef curry with tomato gravy served over fluffy white basmati rice | flavorribbon.com

This hearty curry transforms beef chuck into fork-tender morsels through slow simmering in a robust tomato-based sauce infused with whole and ground spices. The foundation starts with blooming cumin seeds, bay leaves, cloves, and cinnamon in hot oil, creating a fragrant base that permeates every layer.

After sautéing onions until golden brown, garlic and ginger join the pot before a generous blend of ground spices—including coriander, turmeric, chili powder, garam masala, and paprika—gets toasted to release their essential oils. The beef cubes are browned in this aromatic mixture, then tomatoes are added to break down and form the body of the gravy.

The lengthy simmer in stock and water allows the tough connective tissues in the chuck to dissolve into gelatin, while yogurt stirred in during the final half-hour adds creaminess and slight tang that balances the warmth of the spices. Remove the whole spices before serving, then finish generously with fresh cilantro and a squeeze of lemon juice to brighten the rich, deep flavors.

The first time I made this beef curry, my entire apartment building smelled like an Indian restaurant. My neighbor actually knocked on my door asking what restaurant I ordered from, and her jaw dropped when I told her I made it myself. Now whenever I make it, I leave my windows open on purpose.

Last winter, my sister came over after a terrible week at work. I had this curry simmering on the stove when she walked in, and she literally started crying not from sadness, but from how good it smelled. We ate it curled up on the couch while watching movies, and she told me it was exactly what she needed.

Ingredients

  • 800 g (1.75 lbs) beef chuck: Cut into 2-inch cubes. Chuck becomes meltingly tender after slow cooking, and I learned the hard way that leaner cuts just dry out.
  • 2 tablespoons vegetable oil: You want enough oil to properly bloom those spices. Skimp here and the whole curry suffers.
  • 2 medium onions, finely chopped: Take the time to chop them small and cook them until theyre deep golden brown. This is the foundation of your flavor.
  • 4 garlic cloves, minced: Fresh garlic makes such a difference. Jarred garlic works in a pinch, but the flavor isnt nearly as bright.
  • 1 tablespoon fresh ginger, grated: I keep a chunk of ginger in my freezer and grate it frozen. So much easier than peeling and grating fresh.
  • 2 green chilies, sliced: Leave them whole if you want mild flavor, slice them for medium heat. I usually remove the seeds for my kids.
  • 400 g (14 oz) ripe tomatoes, chopped: Canned diced tomatoes work perfectly here, especially in winter. Just dont drain them.
  • 1 teaspoon cumin seeds: Toasting these whole seeds in hot oil releases an incredible nutty aroma you cant get from ground cumin.
  • 1 tablespoon ground coriander: Adds this lovely citrusy brightness that balances the rich beef.
  • 1 teaspoon ground turmeric: More than just color. It adds this subtle earthy flavor that makes the curry taste authentic.
  • 1 teaspoon chili powder: Adjust based on your heat tolerance. I use mild chili powder so I can add more without making it too spicy.
  • 1 teaspoon garam masala: The finishing spice blend. Add it toward the end so those fragrant notes dont cook away.
  • 1 teaspoon ground cumin: Works with the cumin seeds to layer the flavor.
  • 1 teaspoon paprika: I use smoked paprika sometimes for an extra layer of depth.
  • 2 teaspoons salt: Taste as you go. Beef needs salt to become its best self.
  • 1 teaspoon black pepper: Freshly ground makes a huge difference here.
  • 2 bay leaves: Remove before serving unless you want someone to get an unpleasant surprise.
  • 4 whole cloves: Just four cloves add this subtle warmth that people cant quite identify.
  • 1 cinnamon stick: Break it in half to release more flavor into the oil.
  • 250 ml (1 cup) beef or chicken stock: Homemade stock is ideal, but a good quality store-bought one works perfectly fine.
  • 100 ml (1/2 cup) water: Adjust based on how thick you like your curry. I sometimes add a splash more during cooking.
  • 120 ml (1/2 cup) plain yogurt: Full fat yogurt creates a silkier sauce. Low fat can sometimes separate when heated.
  • Fresh cilantro leaves, chopped: The bright herbiness cuts through the rich sauce.
  • Lemon wedges: A squeeze of lemon right before serving brightens everything up beautifully.

Instructions

Get your pot ready:
Heat the oil in a large, heavy-bottomed pot over medium heat. You want it hot but not smoking. Toss in the cumin seeds, bay leaves, cloves, and cinnamon stick. Let them sizzle for about a minute until your kitchen smells incredible.
Build the foundation:
Add the chopped onions and cook them slowly. This takes about 8 minutes. Stir frequently and let them turn a deep golden brown. This step is worth every minute. Patience pays off here.
Add the aromatics:
Stir in the garlic, ginger, and green chilies. Cook for 2 minutes, stirring constantly so the garlic doesnt burn. Your kitchen should smell amazing right about now.
Bloom the spices:
Add all the ground spices and toast them for just 1 minute. This wakes up their flavors. Stir constantly so they dont scorch.
Brown the beef:
Add the beef cubes and let them sear on all sides. Take about 5 minutes for this step. Let each side develop a nice brown crust. This creates depth of flavor.
Add tomatoes:
Stir in the chopped tomatoes and cook for 5 minutes. They should soften and start breaking down. The mixture will look thick and fragrant.
Simmer low and slow:
Pour in the stock and water. Bring everything to a boil, then lower the heat to a gentle simmer. Cover and let it cook for 1 hour. Check occasionally and give it a stir.
Add the yogurt:
Remove the lid and stir in the yogurt. Let it simmer uncovered for another 20 to 30 minutes. The sauce should thicken beautifully and the beef should be fork tender.
Final touches:
Taste and adjust the seasoning if needed. Fish out the whole spices, bay leaves, and cinnamon stick before serving. Nobody wants to bite into a whole clove.
Serve it up:
Sprinkle with fresh cilantro and serve hot with basmati rice or naan bread. Put lemon wedges on the table so everyone can add their own brightness.
Tender beef cubes simmered in spiced tomato gravy garnished with fresh cilantro leaves Save
Tender beef cubes simmered in spiced tomato gravy garnished with fresh cilantro leaves | flavorribbon.com

This curry has become my go-to for dinner parties. I love how it fills the house with these incredible aromas that make everyone feel welcome before they even sit down at the table.

Making It Your Own

Ive made this curry so many times and each version feels personal. Sometimes I add diced potatoes during the last 30 minutes of cooking. Other times I throw in a handful of spinach right at the end. The recipe is forgiving and welcomes experimentation.

The Art of Slow Cooking

Rushing this recipe defeats the purpose. The magic happens during that long simmer when the beef breaks down and all those spices meld together. I usually start it in the late afternoon and let it bubble gently until dinner time.

Serving Suggestions

Basmati rice is classic, but Ive served this over quinoa for extra protein and with roasted cauliflower on the side. The leftovers freeze beautifully for those nights when cooking feels impossible.

  • Make extra rice the next day for curry fried rice
  • Warm your naan directly over a gas flame for the best texture
  • A simple cucumber raita on the side cools down the heat beautifully
Rich aromatic beef curry in red tomato sauce paired with warm naan bread Save
Rich aromatic beef curry in red tomato sauce paired with warm naan bread | flavorribbon.com

There is something so satisfying about making a curry from scratch. The patience it requires feels like a meditation, and the first bite always reminds me why homemade food tastes like love.

Recipe FAQs

Beef chuck is ideal because it contains connective tissue that breaks down during long cooking, becoming tender and adding richness to the gravy. You can also use brisket, round, or shank. Avoid lean cuts like sirloin as they may become tough and dry.

Yes. For a slow cooker, brown the beef and spices on the stove first, then transfer everything and cook on low for 6-8 hours. For an Instant Pot, use the meat/stew setting for 35-40 minutes with natural pressure release. The yogurt should be stirred in after pressure cooking.

This version has moderate heat. The chili powder and optional green chilies provide warmth without overwhelming the other flavors. For more heat, increase the chili powder or add serrano peppers instead of green chilies. For a milder version, reduce chili powder to ½ teaspoon and omit fresh chilies.

Absolutely. Simply substitute coconut yogurt or coconut milk for the plain yogurt. The coconut flavor complements the spices beautifully and adds natural sweetness. You can also omit the yogurt entirely—the gravy will still be rich from the tomatoes and slow-cooked beef.

The curry tastes even better the next day as flavors continue to develop. Store refrigerated in an airtight container for up to 4 days. It freezes excellently for up to 3 months—portion into containers, cool completely, and freeze. Thaw overnight in the refrigerator before reheating gently on the stove.

Basmati rice is traditional, soaking up the spiced gravy beautifully. Naan or other flatbreads work well for scooping. You can also serve over roti, with simple cucumber raita on the side, or accompanied by pickled onions for contrast. A light side dish like steamed vegetables balances the richness.

Indian Beef Curry with Tomato Gravy

Tender beef pieces simmered in aromatic spiced tomato gravy with cumin, coriander, and warming Indian spices for a rich, satisfying main course.

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
  • 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
  • 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
Sauté Aromatics: Stir in garlic, ginger, and green chilies. Cook for 2 minutes until aromatic.
4
Bloom 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 the Curry: 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
Elise Carrington

Sharing easy, flavorful recipes and meal ideas for busy home cooks and food lovers.