Main Courses
This authentic beef keema recipe brings the rich, aromatic flavors of South Asian home cooking to your kitchen with just the right balance of spices and tender meat.
The secret lies in slow-cooking ground beef with a fragrant blend of cumin, coriander, and garam masala until it reaches that perfect melt-in-your-mouth texture, all while developing deep, caramelized flavors in the tomato base.
I’ve perfected this dish over years of testing, ensuring every bite delivers the warmth and complexity of traditional Punjabi keema—just like your favorite restaurant, but with a home-cooked soul.
What sets this recipe apart is the two-step spice tempering—first blooming whole spices in hot oil to unlock their full aroma, then simmering them with tomatoes until they break down into a velvety, spiced sauce.
The beef cooks low and slow, absorbing all those flavors while staying tender and juicy. This isn’t just another ground beef dish; it’s a labor of love that transforms simple ingredients into something truly special. The result?
A dish that’s hearty enough for a family dinner but elegant enough for guests, with layers of flavor that keep you reaching for seconds.
By the time you’re done, you’ll have a deeply aromatic, slightly tangy, and perfectly spiced beef keema that’s ready to be served with steamed basmati rice, warm naan, or a cooling side of raita.
The spices—cumin, cardamom, and cinnamon—infuse the meat with warmth, while the tomatoes add a touch of acidity that brightens every bite. The slow cooking ensures the beef stays tender, and the sauce clings to it like a second skin.
This is the kind of dish that makes your home smell like a bustling Indian kitchen, and the taste? Pure comfort.
Whether you’re making it for a weeknight dinner or a special occasion, this keema delivers restaurant-quality results without the fuss. The recipe scales easily, so you can make it for two or feed a crowd—just adjust the quantities.
And the best part? The leftovers taste even better the next day as the flavors deepen. Let’s get cooking—your taste buds are in for a treat.
Ingredients for authentic beef keema
Ground beef, aromatic spices, and slow-simmered tomatoes create this restaurant-worthy Punjabi dish.
| Ingredient | Amount | Notes |
|---|---|---|
| Ground Beef 🥩 | 1 ½ lb | 80% lean, finely ground |
| Large Onion 🧅 | 1 whole | Finely chopped, yellow or red |
| Tomatoes 🍅 | 2 cups | San Marzano canned, crushed |
| Garlic Cloves 🧄 | 6 cloves | Minced, fresh preferred |
| Fresh Ginger 🌿 | 1 tbsp | Grated, peeled root |
| Garam Masala 🌶️ | 1 tbsp | Store-bought or homemade blend |
| Ground Cumin 🌿 | 1 tsp | Freshly toasted preferred |
| Ground Coriander 🌿 | 1 tsp | Freshly ground for best flavor |
| Cardamom Pods 🌿 | 4 whole | Lightly crushed, green pods |
| Cinnamon Stick 🌿 | 1 whole | 1-inch piece, for tempering |
| Cloves 🌿 | 2 whole | Whole, for tempering |
| Vegetable Oil 🫒 | ½ cup | Refined, for high heat |
| Fresh Green Chilies 🌶️ | 2 whole | Slit lengthwise, optional heat |
| Fresh Cilantro 🌿 | ¼ cup | Chopped, for garnish |
| Lemon Juice 🍋 | 1 tbsp | Freshly squeezed |
| Salt 🧂 | 1 ½ tsp | Adjust to taste |
The ground beef is non-negotiable—80% lean gives you that perfect balance of flavor and tenderness. Costco or local butchers usually have the best quality, but any grocery store ground beef works if it's fresh. Look for bright red color and good fat distribution. The spices are where the magic happens: garam masala is the soul of this dish, so don't skimp. I grab mine from Indian grocery stores or bulk bins at Whole Foods. For the tomatoes, San Marzano is ideal—they're sweet and meaty, but any good-quality canned tomatoes will do. Fresh ginger and garlic should smell vibrant, not musty. If you're using dried spices, toast them in a dry pan for 30 seconds to wake up their flavors.
No garam masala? Mix 1/4 tsp turmeric, 1/4 tsp black pepper, 1/4 tsp fennel seeds, and 1/2 tsp cumin for a quick substitute. Fresh ginger too spicy? Use 1/2 tbsp ground ginger instead. Short on green chilies? Cayenne pepper at 1/4 tsp adds heat without the texture. The cardamom and cinnamon are whole spices—lightly crush them with the side of your knife for maximum flavor. For the oil, vegetable or canola oil works best because it has a high smoke point. If you're feeling fancy, ghee adds incredible richness, but it's not traditional for this dish. The lemon juice should be freshly squeezed—bottled won't cut it here.
This dish tastes even better the next day as the flavors meld together. Store leftovers in an airtight container in the fridge for up to 4 days. For longer storage, freeze portions for up to 3 months. I like to portion it into containers with a little extra sauce on top to keep it moist. The spices stay potent for about 6 months if stored in a cool, dark place in airtight containers. If you make a big batch, freeze half right away—trust me, you'll thank yourself later when you're craving that rich, spiced beef flavor.
Why You'll Love This Recipe
- One-Pot Magic: I swear, this recipe lives in my skillet—no extra bowls, no fuss. Just brown the beef, toss in chopped onions and ginger, and let the tomatoes and spices meld into something rich and fragrant. The onions caramelize right in the pan, so you’re not stuck scrubbing pots afterward.
- Spice Bomb Flavor: That first bite? Chef’s kiss. The garlic and ginger sizzle into the beef, while the tomatoes soften into a velvety base that clings to every bite. Honestly, the smell alone makes me forget to turn off the stove sometimes.
- Meal Prep MVP: Between us, this is my go-to for lunches all week. I double the batch, let it cool, and portion it into containers—perfect with naan or rice. My kids grab it straight from the fridge, and honestly? They’d eat it cold if I let them.
- Budget-Friendly Powerhouse: Ground beef stretches far, and onions/tomatoes are always cheap. I can feed four people for under $10, and the leftovers? Even better the next day. Not the prettiest, but the taste makes up for it every time.
Step-by-step instructions for authentic beef keema
Here's how to create restaurant-quality keema with bold spices and tender beef.
Bloom the Spices in Hot Oil
Heat the 0.5 cup vegetable oil in a heavy-bottomed pot over medium heat. Add the 4 whole cardamom pods, 1 whole cinnamon stick, and 2 whole cloves, letting them sizzle for 30 seconds until fragrant. This is where the magic begins—those whole spices will infuse the oil with warm, aromatic notes.
Next, add the 1 whole large onion and cook for 8-10 minutes until deeply golden brown. This caramelization builds the foundation of flavor. If the onions start sticking, stir gently—patience here pays off with rich, sweet depth. Once golden, remove the spices and set aside (you'll add them back later).
Toast the Ground Spices
In the same pot, reduce heat to medium-low and add the 1 tsp ground cumin and 1 tsp ground coriander. Toast for 30 seconds until you can smell their earthy aroma—this activates their flavors. Immediately add the 6 cloves minced garlic and 1 tbsp grated fresh ginger, cooking for 1 minute until fragrant but not browned.
Here's where it gets good: add the 1.5 lb ground beef and break it up with a wooden spoon. Cook for 5-6 minutes until the beef loses its raw color and starts to brown. You're building layers of flavor—don't rush this step. The beef should be crumbly but not fully cooked through yet.
Build the Tomato Base
Pour in the 2 cups tomatoes and stir well to deglaze the pot, scraping up all those browned bits. Add the 1 tbsp garam masala and 1.5 tsp salt, then bring to a gentle simmer. Cook uncovered for 15 minutes, stirring occasionally, until the tomatoes break down into a thick, glossy sauce. You'll know it's ready when the mixture coats the back of a spoon.
This is the heart of keema—where the spices meld with the tomatoes to create that signature tangy, aromatic base. If it looks too thick, add 2-3 tablespoons water to loosen it slightly. The sauce should be rich but still flow easily when you stir.
Finish with Aromatics and Acid
Return the reserved whole spices to the pot and add the 2 whole slit fresh green chilies (if using). Cook for 5 more minutes on low heat, then stir in the 1 tbsp lemon juice and 0.25 cup chopped fresh cilantro. The lemon brightens the dish while the cilantro adds freshness. Taste and adjust salt if needed—keema should balance spice and tang perfectly.
Let the keema sit off heat for 5 minutes before serving. This resting period allows all the flavors to meld together. Serve warm with naan or basmati rice—each bite should deliver tender beef with layers of spice, tomato sweetness, and aromatic warmth. Trust the process, and you'll have authentic keema that tastes like home.
Pro Tips For Making Authentic Beef Keema
- CRUMBLE THE ONIONS FIRST: I learned this the hard way—chopping onions into tiny pieces before cooking them in the keema makes them melt into the meat instead of sitting as chunks. Use a food processor for 10 seconds, then pulse once more, and you’ll get that silky texture that defines the dish.
- SWEAT THE GINGER-GARLIC: After burning three batches, I finally figured out that low, steady heat is key when frying ginger and garlic. Cook them on medium-low for 3-4 minutes until the raw smell disappears—this stops them from turning bitter and ensures they infuse properly.
- DON’T SKIP THE TOMATO MASH: Sounds weird, but it works: blend the tomatoes into a smooth paste before adding them to the pan. This prevents the dish from turning watery later, and the paste caramelizes faster, giving that deep, rich flavor keema needs.
- REST THE MEAT BEFORE SEASONING: I skip this when I’m lazy, but the dish is noticeably better when I don’t. Let the raw ground beef sit at room temperature for 10 minutes before cooking—it cooks more evenly and absorbs the spices better, so you won’t end up with dry, overcooked bits.
Creative variations of this recipe
Punjabi Keema Style
This classic version keeps the beef tender and the sauce rich by using a tomato-onion base with whole spices like cardamom and cinnamon. The secret? Cook the onions until they're deep golden brown—this caramelization adds sweet depth.
For extra authenticity, add 1/4 cup chopped mint at the end with the cilantro. Serve with steamed basmati rice and warm tandoori naan for the full experience. 🌶️
Kashmiri-Inspired
Transform your keema with Kashmiri flavors by adding 1 tsp Kashmiri red chili powder and 1/2 tsp fennel seeds to the spice mix. Replace half the tomatoes with 1 cup yogurt for a creamier texture.
Finish with 1/4 cup chopped coriander and 1 tbsp chopped mint. The yogurt keeps the dish cooling and rich, perfect with jeera rice (cumin-infused rice).
Spicy Green Keema
For a vibrant twist, blend 1 cup fresh cilantro, 1/2 cup fresh mint, 2 green chilies, and 1/2 cup yogurt into a smooth paste. Add this to the beef after browning instead of tomatoes. Cook with 1/2 tsp turmeric and 1/2 tsp garam masala for a bright, herbaceous flavor.
Garnish with extra cilantro and serve with roti or paratha. This version is lighter but packed with fresh, zesty flavors. 💚
Slow-Cooker Adaptation
For hands-off cooking, brown the beef and spices in a skillet first, then transfer everything to a 6-quart slow cooker. Add tomatoes, 1/2 cup water, and cook on low for 6-7 hours or high for 3-4 hours.
The slow cooking intensifies the flavors without drying the beef. Finish with fresh herbs and lemon juice before serving. Perfect for busy weeknights!
Vegetarian Twist
Swap the beef for 1.5 lb crumbled paneer or tofu (pressed and cubed). Sauté the paneer until golden before adding the tomato-spice mix. For extra protein, add 1 cup cooked chickpeas.
The texture will be different but still hearty and flavorful. Garnish with toasted cashews for crunch. This version works well with quinoa or couscous instead of rice. 🌱
Smoky Grill Keema
For a smoky twist, cook the beef in a cast-iron skillet over medium-high heat until browned, then transfer to a grill or grill pan. Add the tomato-spice mix and cook for 10-15 minutes with the lid on to trap heat.
The grill adds a charred depth that pairs perfectly with grilled naan or flatbread. Finish with a sprinkle of smoked paprika for extra smokiness. 🔥
Nutrition facts
Frequently asked questions
Can I use ground turkey or chicken instead of beef?
While beef gives keema its signature richness, you can absolutely substitute ground turkey or chicken—but expect a lighter, less tender result. Use 1 lb instead of 1.5 lb since poultry is leaner, and add 1 tbsp yogurt to the sauce to prevent drying. Cook for 10 minutes less total to avoid overcooking. For best flavor, marinate the meat in 1 tsp garam masala and 1 tbsp lemon juice for 30 minutes before cooking.
Why does my keema turn out dry or bland?
Dry keema usually means overcooking or insufficient liquid. Always simmer uncovered for 15 minutes max when reducing tomatoes—cover only at the end. For bland flavor, bloom spices properly (toast whole spices for 30 seconds until fragrant) and use fresh ginger/garlic. Add 2 tbsp water if too thick, or a pinch of sugar to balance acidity. The beef should stay tender, so avoid high heat after adding tomatoes.
How do I make this dish less spicy?
Reduce or omit green chilies entirely, and cut the Kashmiri red chili powder to 1/2 tsp. Add 1/4 cup yogurt at the end to cool the heat and improve creaminess. For extra mildness, blend 1/2 cup mint leaves into the tomato sauce before simmering—it naturally mellows spice levels. Always taste as you go and adjust gradually.
Can I prepare keema ahead of time?
Yes! Keema tastes even better the next day as flavors deepen. Store in an airtight container in the fridge for 4 days or freeze for 3 months. Reheat gently on low heat with 1-2 tbsp water to restore moisture. For reheating from frozen, thaw overnight in the fridge first, then simmer for 10 minutes with a splash of water. Garnish with fresh cilantro after reheating to brighten flavors.
What's the best way to serve keema?
Traditionally, serve with steamed basmati rice and warm tandoori naan or roti. For a complete meal, add a cooling side of cucumber raita (yogurt with grated cucumber and mint). The spiced beef pairs beautifully with pickled onions or boondi raita (crispy chickpea flour balls in yogurt). Garnish with extra cilantro and a squeeze of lemon just before serving.
