Beef Bhuna is a beloved Bangladeshi dry curry where chunks of beef are slow-cooked with deeply caramelized onions, yogurt, and warm whole spices until the gravy reduces into a thick, intensely flavored coating that clings to every piece of meat. The hallmark of a good bhuna is the moment when the oil separates from the masala and the bottom of the pan is nearly dry, leaving behind concentrated spice and richness.
Prep Time20 mins
Cook Time60 mins
Total Time80 mins
Servings4
Yield4 servings
Nutrition Facts
Per serving (estimated)
- 485 kcalCalories
- 28 gFat
- 9 gSaturated Fat
- 14 gCarbs
- 3 gFiber
- 7 gSugar
- 42 gProtein
- 720 mgSodium
- 780 mgPotassium
- 135 mgCalcium
- 6 mgIron
- 14 mgVitamin C
- 85 mcgVitamin A
Ingredients
For the beef and marinade
- 2 lbs beef chuck, trimmed and cut into 1.5-inch cubes
- 1 cup plain whole-milk yogurt
- 2 tablespoons ginger-garlic paste
- 1 teaspoon ground turmeric
- 1 teaspoon fine sea salt
For the spice base
- 4 tablespoons mustard oil (or vegetable oil)
- 2 dried bay leaves
- 1 (2-inch) cinnamon stick
- 4 green cardamom pods
- 4 whole cloves
- 3 large yellow onions, very thinly sliced
- 1 tablespoon ground cumin
- 1 tablespoon ground coriander
- 1.5 teaspoons Kashmiri red chili powder
- 2 medium Roma tomatoes, finely chopped
- 3 green Thai chilies, slit lengthwise
- 1 teaspoon garam masala
- 1/4 cup chopped fresh cilantro
Directions
- Combine the beef cubes with yogurt, ginger-garlic paste, turmeric, and salt in a bowl; mix well, cover, and marinate for at least 30 minutes at room temperature or up to 4 hours in the refrigerator.
- Heat the mustard oil in a heavy Dutch oven over medium-high until it just begins to smoke, then reduce the heat to medium. Add the bay leaves, cinnamon stick, cardamom, and cloves and fry for 30 seconds until fragrant.
- Add the thinly sliced onions and cook, stirring frequently, for 12 to 15 minutes until they turn deep golden brown; this step builds the dish's signature color and sweetness, so do not rush it.
- Add the marinated beef along with all of its marinade and increase the heat to high. Sear the meat for 6 to 8 minutes, stirring, until the pieces lose their raw pink color and the yogurt bubbles vigorously.
- Stir in the ground cumin, ground coriander, and Kashmiri chili powder, then add the chopped tomatoes and slit green chilies. Cook for 3 to 4 minutes until the tomatoes break down into a thick paste.
- Reduce the heat to low, cover the pot, and simmer gently for 40 to 45 minutes, stirring every 10 minutes to prevent sticking, until the beef is fork-tender.
- Uncover the pot, raise the heat to medium, and continue cooking for 8 to 10 minutes, stirring often, until the gravy thickens dramatically, the oil separates and pools at the edges, and the masala coats the meat in a glossy, almost dry layer.
- Off the heat, sprinkle the garam masala and chopped cilantro over the top, give one final stir, and let the curry rest covered for 5 minutes before serving with steamed basmati rice or warm paratha.
Cook’s Notes
- For the most authentic flavor, use mustard oil and heat it to a smoking point first to mellow its raw pungency; ghee or vegetable oil works as substitutes.
- The deep brown color and richness depend entirely on patient onion browning, so resist the urge to add the meat before the onions reach a true caramel color.
- A 'dry' bhuna means the gravy should cling thickly to the meat rather than pool at the bottom, so keep reducing until only a slick of oil shows around the edges.
- If the beef is tough, add 1/2 cup of hot water during the covered simmer and extend the cooking time by 20 minutes before reducing again.
- Serve alongside a cooling cucumber-yogurt raita and plain white rice to balance the heat and richness of the spices.










