Quick Recipe Version (TL;DR)
Quick Ingredients
- 750 g (1.5 lb) boneless lamb shoulder or leg, cut into 2.5 cm (1 inch) cubes
- 3 tbsp plain full-fat yogurt
- 1 tbsp lemon juice
- 2.5 tsp salt, divided (plus more to taste)
- 3 tbsp neutral oil (sunflower/vegetable), plus 1 tbsp ghee (optional)
- 3 medium onions, thinly sliced
- 4 cloves garlic, finely minced
- 2.5 cm (1 inch) piece ginger, finely grated
- 3 medium ripe tomatoes, finely chopped or pureed
- 2 green chilies, slit (optional, to taste)
- Whole spices: 2 bay leaves, 4 green cardamom pods, 4 cloves, 1 small cinnamon stick, 1 tsp cumin seeds
- Ground spices: 1/2 tsp turmeric, 2 tsp ground coriander, 2 tsp Kashmiri chili powder, 1 tsp hot chili powder (or to taste), 1 tsp ground cumin, 1/2 tsp garam masala, 1/2 tsp black pepper
- 60–120 ml (1/4–1/2 cup) hot water, as needed
- Small handful fresh coriander (cilantro) leaves, chopped
Do This
- 1. Marinate lamb with yogurt, lemon juice, 1/2 tsp turmeric, and 1/2 tsp salt for 30 minutes (optional but recommended).
- 2. Heat oil (and ghee, if using); add bay leaves, cardamom, cloves, cinnamon, and cumin seeds until fragrant.
- 3. Add sliced onions and 1 tsp salt; cook on medium-low, stirring often, until deep golden and caramelized, 20–25 minutes.
- 4. Stir in garlic, ginger, green chilies; cook 1–2 minutes, then add tomatoes and remaining ground spices. Cook until thick, glossy, and the oil separates.
- 5. Add marinated lamb and 1 tsp salt; cook on medium-high, stirring and “bhuna-ing” (frying) until lamb is well coated and lightly browned, 10–15 minutes.
- 6. Add 1/4 cup hot water, cover, and cook on low, stirring occasionally and adding a splash more water as needed, until lamb is very tender and sauce is thick and clings to the meat, 45–60 minutes.
- 7. Finish with garam masala, black pepper, fresh coriander, and a squeeze of lemon; rest 5 minutes, then serve with naan, roti, or rice.
Why You’ll Love This Recipe
- Deep, restaurant-style flavor created with simple spices and patient browning at home.
- Thick, clingy masala that coats every piece of lamb instead of a runny sauce.
- Great make-ahead dish that tastes even better the next day as the flavors meld.
- Uses everyday supermarket ingredients while still tasting authentically bold and complex.
Grocery List
- Produce: Onions (3 medium), garlic (4 cloves), fresh ginger, ripe tomatoes (3 medium), green chilies (optional), fresh coriander (cilantro), lemon
- Dairy: Plain full-fat yogurt, ghee (optional but recommended)
- Pantry: Boneless lamb shoulder or leg, vegetable or sunflower oil, bay leaves, green cardamom pods, cloves, cinnamon stick, cumin seeds, ground turmeric, ground coriander, Kashmiri chili powder, hot chili powder, ground cumin, garam masala, black pepper, salt
Full Ingredients
Lamb and Marinade
- 750 g (1.5 lb) boneless lamb shoulder or leg, trimmed and cut into 2.5 cm (1 inch) cubes
- 3 tbsp plain full-fat yogurt
- 1 tbsp fresh lemon juice
- 1/2 tsp ground turmeric
- 1/2 tsp fine sea salt
Bhuna Masala Base
- 3 tbsp neutral oil (such as sunflower, canola, or vegetable)
- 1 tbsp ghee (optional, for richness)
- 2 bay leaves
- 4 green cardamom pods, lightly crushed
- 4 whole cloves
- 1 small cinnamon stick (about 4 cm / 1.5 inches)
- 1 tsp cumin seeds
- 3 medium onions (about 600 g / 1.3 lb), thinly sliced pole-to-pole
- 2.5 tsp fine sea salt, divided (1 tsp for onions, 1 tsp for lamb, plus 1/2 tsp in marinade)
- 4 cloves garlic, finely minced or grated (about 4 tsp)
- 2.5 cm (1 inch) piece fresh ginger, peeled and finely grated (about 2 tsp)
- 2 green chilies (such as serrano or finger chilies), slit lengthwise (optional, adjust to taste)
- 3 medium ripe tomatoes (about 400 g / 14 oz), very finely chopped or pureed
Ground Spices
- 2 tsp ground coriander
- 2 tsp Kashmiri chili powder (for color and mild heat)
- 1 tsp hot red chili powder (or to taste)
- 1 tsp ground cumin
- 1/2 tsp garam masala
- 1/2 tsp freshly ground black pepper
To Finish
- 60–120 ml (1/4–1/2 cup) hot water, added gradually as needed
- Small handful fresh coriander (cilantro) leaves, roughly chopped
- Extra lemon wedges, for serving

Step-by-Step Instructions
Step 1: Marinate the lamb
In a mixing bowl, combine the yogurt, lemon juice, ground turmeric, and 1/2 teaspoon salt. Whisk until smooth. Add the lamb cubes and toss thoroughly, making sure every piece is coated in the marinade. Cover and refrigerate for at least 30 minutes and up to 4 hours. While this marinating step is technically optional, it helps tenderize the lamb and builds deeper flavor into the finished curry.
While the lamb marinates, slice the onions, chop or puree the tomatoes, mince the garlic, grate the ginger, and slit the green chilies. Having everything prepped makes the cooking process smooth, since the bhuna stage moves quickly once you start adding ingredients.
Step 2: Toast the whole spices
Place a heavy-based pot or deep sauté pan (a Dutch oven works very well) over medium heat. Add the oil and ghee (if using). When hot but not smoking, add the bay leaves, crushed green cardamom pods, cloves, cinnamon stick, and cumin seeds.
Stir and fry the spices for 30–60 seconds, just until they sizzle and become fragrant. Be careful not to let them burn; if they darken too much or smell acrid, reduce the heat slightly. This step infuses the fat with warm, complex spice flavors that will carry through the whole dish.
Step 3: Slowly caramelize the onions
Add the sliced onions to the pot along with 1 teaspoon of the salt. The salt helps draw out moisture and speeds up the browning. Stir to coat the onions evenly in the spiced oil. Cook over medium heat for about 5 minutes, stirring occasionally, until the onions begin to soften and turn translucent.
Reduce the heat to medium-low and continue to cook, stirring every few minutes, for 20–25 minutes, or until the onions are deep golden brown and caramelized. If they start to catch on the bottom, lower the heat and add a tiny splash of water to loosen them. This slow caramelization is key to the rich, intense flavor and color of a good lamb bhuna; do not rush this step.
Step 4: Build the tomato and spice masala
Once the onions are deeply caramelized, add the minced garlic, grated ginger, and slit green chilies. Cook, stirring constantly, for 1–2 minutes until fragrant and the raw smell of garlic disappears.
Add the chopped or pureed tomatoes to the pot. Stir well to combine with the onion mixture. Sprinkle in the ground coriander, Kashmiri chili powder, hot chili powder, and ground cumin. Stir immediately so the spices do not clump or burn.
Cook this masala over medium heat for 10–15 minutes, stirring frequently, until it becomes thick, darker in color, and glossy. You should see small pools of oil separating from the masala around the edges of the pan; this is a sign that the tomatoes are well cooked and the spices have bloomed properly. Taste and adjust the chili level at this stage if needed.
Step 5: Bhuna the lamb in the masala
Add the marinated lamb and any remaining marinade to the pan. Sprinkle over 1 teaspoon of salt. Turn the heat up to medium-high and stir well so that every piece of lamb is coated in the thick masala.
For the next 10–15 minutes, continue to cook uncovered, stirring often and scraping the bottom of the pan. This is the “bhuna” stage: you are essentially frying the lamb in the masala, driving off moisture and allowing the meat to sear slightly while absorbing all the spices and caramelized onion flavor. If anything starts to stick, reduce the heat slightly and loosen with a spoonful of hot water, but keep the mixture thick.
Step 6: Slow cook until tender and thick
Once the lamb has changed color all over and the masala looks thick and clingy, add about 60 ml (1/4 cup) of hot water and stir well, scraping up any browned bits from the bottom of the pan. Bring to a gentle simmer.
Reduce the heat to low, cover with a tight-fitting lid, and cook for 45–60 minutes, stirring every 10–15 minutes. Each time you stir, check the consistency: if the mixture looks too dry or is sticking, add another small splash of hot water (a tablespoon or two at a time). The goal is not a runny sauce, but a dense, rich masala that coats the lamb. The lamb is done when it is very tender and yields easily to a fork.
Step 7: Finish, rest, and serve
When the lamb is tender and the curry is thick and glossy, stir in the garam masala and freshly ground black pepper. Taste and adjust seasoning with more salt or lemon juice if needed. Turn off the heat, scatter over the chopped fresh coriander, and give everything a gentle stir.
Let the lamb bhuna rest, covered, for 5–10 minutes before serving; this brief rest helps the flavors settle and the sauce cling even more to the meat. Serve hot with naan, roti, parathas, or a simple basmati rice. A squeeze of fresh lemon and a little extra coriander on top make it look and taste especially vibrant.
Pro Tips
- Do not rush the onions. Deeply caramelized onions are the backbone of this dish. Pale or undercooked onions will give you a flat-tasting curry.
- Cook the tomatoes until the oil separates. This ensures the raw taste is gone and the spices are properly cooked, giving a richer, more rounded flavor.
- Keep the sauce thick. A bhuna is meant to be dense and clingy, not soupy. Add water in small splashes only to prevent burning and help the lamb cook.
- Use lamb shoulder if possible. It has enough fat and connective tissue to become meltingly tender and flavorful with slow cooking.
- Rest before serving. A short rest lets the lamb relax and the masala tighten slightly, giving a better texture and flavor.
Variations
- Beef or goat bhuna: Swap lamb for stewing beef or goat. Increase the covered simmering time as needed (often 75–90 minutes) until the meat is very tender.
- Pressure cooker / Instant Pot: After the bhuna stage, add 1/2 cup water, pressure cook on high for 20–25 minutes (natural release), then simmer uncovered to reduce until thick.
- Saucier bhuna: If you prefer more gravy, stir in an additional 1/2–3/4 cup hot water near the end and simmer just until slightly thick but still spoonable.
Storage & Make-Ahead
Cool the lamb bhuna to room temperature, then transfer to an airtight container. Refrigerate for up to 3–4 days. The flavor actually improves overnight as the spices meld into the meat, making this an excellent make-ahead dish for entertaining or meal prep.
To reheat, warm gently on the stovetop over low heat, adding a splash of water if it looks too thick, and simmer until piping hot. You can also reheat in the microwave, stirring once or twice. For longer storage, freeze in well-sealed containers for up to 3 months. Thaw overnight in the refrigerator before reheating.
Nutrition (per serving)
Approximate values per serving (1/4 of the recipe): about 450–500 calories; 33–36 g protein; 30–34 g fat; 8–12 g carbohydrates; 2–3 g fiber; 900–1100 mg sodium (will vary depending on exact salt used and any adjustments). These numbers are estimates and will vary based on the specific cut of lamb, brand of yogurt, and amount of oil retained in the finished dish.

