Indian-Spiced Ground Beef Main Dish
⏲ ~36 min total · prep 14 · cook 22 · 4 servings
Lunch⏱ 40 min total🔥 7.5g net carbs
By the KFI Test Kitchen · Tested & approved by Jason Lieu, KFI recipe editor
Published Sep 15, 2026 · Updated Sep 15, 2026
Ingredients
- 1 1/2 lb ground beef (85/15)
- 2 tbsp ghee
- 1 medium yellow onion, finely diced
- 1 tbsp grated fresh ginger
- 4 garlic cloves, minced
- 1 tbsp garam masala
- 2 tsp ground cumin, 1 tsp ground coriander, 1/2 tsp turmeric, 1/4 tsp cayenne
- 1 can (14.5 oz) diced tomatoes, well drained
- 2 cups baby spinach
- 1 tsp salt
- 1/4 cup chopped cilantro, to finish
Instructions
- Heat the ghee in a deep 12-inch skillet over medium-high and brown the beef 6-8 minutes, breaking it into small crumbles, until it sizzles and crusty bits form on the pan bottom.
- Spoon off all but 2 tbsp of fat, then add the onion and cook 5-6 minutes, until the edges turn golden.
- Stir in the ginger, garlic, garam masala, cumin, coriander, turmeric, and cayenne and cook 1 minute, until the spices smell toasty and coat the meat.
- Add the drained tomatoes and simmer 8-10 minutes, stirring occasionally, until the mixture thickens and a ring of oil beads at the edges of the pan.
- Fold in the spinach a handful at a time and cook 2 minutes, until just wilted.
- Season with the salt, rest off the heat 5 minutes, and shower with cilantro before serving.
Why this recipe works
- Crust before spice The beef browns hard for 6 to 8 minutes until crusty bits stick to the pan. Those browned specks dissolve into the tomatoes later and season the whole pot.
- Spices hit hot fat A full minute with the ghee, ginger, and garlic blooms the garam masala, cumin, coriander, turmeric, and cayenne. Toasted spices taste deep; raw ones taste dusty.
- Cooked until oil beads Simmering the drained tomatoes 8 to 10 minutes reduces the sauce until a ring of oil beads at the pan edges. That is the signal a masala has come together.
Tips for making this recipe well
Drain the tomatoes properly
Tip them into a strainer and press so the juice runs off. Watery tomatoes stretch the simmer and the sauce never tightens.
Leave 2 tablespoons of fat
Spoon off the excess after browning but keep a couple of tablespoons in the pan. Spices need fat to bloom, and a dry pan scorches them.
Listen for the sizzle change
When the simmer quiets and the oil separates at the edges, the sauce is ready. That change in the pan is more reliable than the clock.
Spinach last, in handfuls
Two minutes of folding wilts it without turning it to dark threads. Longer than that and it vanishes into the sauce.
The 5-minute rest
Off the heat, the sauce thickens as it cools and the salt settles. Wait it out before you taste for final seasoning.
Serving suggestions
Spoon it into shallow bowls with the cilantro scattered over at the table, not stirred in early. It sits well on cauliflower rice if you want something underneath, and a dollop of plain yogurt cools the cayenne for anyone sensitive to heat. A serving comes to 7.5 g net carbs, and it eats even better the next day once the spices have had a night to settle. Leftovers fold into lettuce cups for an easy desk lunch.
Storage and meal prep
Covered in the fridge for 3 to 4 days; the flavor deepens on day two as the spices continue to bloom into the fat. Reheat in a skillet over medium with a splash of water to loosen. This freezes well for 2 to 3 months in a flat container, which makes thawing quick under cool running water. The spinach softens further after freezing but the sauce carries it fine.
Variations worth trying
- Lamb instead Ground lamb swaps in at the same weight and makes the dish richer. Skim a little more fat before the onions go in.
- Milder pot Drop the cayenne entirely and the dish reads warm, not hot. The garam masala still carries plenty of character.
- Add peppers A diced green bell pepper cooked with the onion adds body while staying low carb. Keep the dice small so it melts in.
- Tomato-free Skip the tomatoes and add a splash of water with the spices, simmering until the meat coats in masala instead of sauce.
Frequently asked questions
How spicy is this?
With a quarter teaspoon of cayenne it lands at a gentle warmth that builds as you eat. Halve the cayenne or leave it out for a mild pot.
Can I use tomato sauce instead of diced?
Yes, but skip the draining and expect a looser sauce. Simmer several minutes longer until you see that ring of oil at the edges.
What fat level of ground beef works?
The recipe is written for 85/15, which has enough fat to carry the spices without greasing the plate. Leaner beef needs a bit more ghee.
How do I store and freeze it?
Cover and refrigerate for 3 to 4 days, or freeze for 2 to 3 months in a flat pack. Both reheat well in a skillet with a splash of water.
How many net carbs?
A serving comes to 7.5 g net carbs. The onion and the drained diced tomatoes supply nearly all of it.
Related keto recipes
As an Amazon Associate and affiliate partner, Keto Food Ideas earns from qualifying purchases at no additional cost to you. Nutritional values are estimates. Recipes are developed with AI assistance and reviewed by our editors before publishing.
← More Lunch recipes · Home