Tanzanian Beef Curry with Coconut, Tomato, and Potatoes

Updated November 4, 2026

Total time
2 hr 5 min
prep 25 min · cook 1 hr 40 min
Serves
6
portions as written
Safe temperature (USDA)
145°F / 63°C
check the thickest piece

Jump to recipe

Tanzanian Beef Curry with Coconut, Tomato, and Potatoes

Tanzanian beef curry is a gently spiced, slow-simmered dish of beef, potatoes, tomato, and coconut milk, often served with rice or another starch. Tanzanian food varies by region and household; this stovetop version draws on the Indian Ocean coast’s Swahili and South Asian culinary influences for a fragrant, savory sauce that clings to tender beef.

Ingredients

  • 2½ lb beef chuck, cut into 1½-inch (4 cm) cubes (1.13 kg)
  • 1½ tsp fine salt (9 g), divided, plus more to taste
  • ½ tsp freshly ground black pepper (1 g)
  • 2 tbsp neutral oil, such as sunflower or canola oil (30 ml)
  • 2 medium yellow onions, finely chopped (about 300 g)
  • 5 garlic cloves, finely chopped or grated (15 g)
  • 1 tbsp finely grated fresh ginger (15 g)
  • 2 tbsp mild curry powder (about 12 g)
  • 1 tsp ground coriander (2 g)
  • 1 tsp ground cumin (2 g)
  • ½ tsp ground turmeric (1.5 g)
  • 1 cinnamon stick, about 3 inches (7.5 cm)
  • 1 bay leaf
  • 1 can chopped tomatoes, with juices, 14.5 oz (411 g)
  • 2 cups low-sodium beef broth (475 ml)
  • 1 lb waxy potatoes, peeled if desired and cut into 1¼-inch (3 cm) chunks (450 g)
  • 1 can unsweetened coconut milk, well stirred, 13.5 oz (400 ml)
  • 1 tbsp fresh lime juice (15 ml)
  • ¼ cup chopped cilantro, loosely packed (about 10 g)
  • 1 small fresh green chili, sliced, optional (about 8 g)

Mild curry powder makes the seasoning easy to find and gives the sauce a rounded, familiar warmth. If you have a Swahili-style curry blend, use it in the same quantity; blends differ, so taste before adding extra salt or heat. Full-fat coconut milk makes a richer sauce, while light coconut milk gives a thinner, less creamy finish. If fresh lime is unavailable, use lemon juice, which will taste a little less floral.

Instructions

  1. Prepare the beef. Pat the beef dry with paper towels so it browns rather than steams. Season it with the black pepper and 1 teaspoon of the salt. Chop the onions, garlic, and potatoes and measure the spices before heating the pan; the later steps move quickly.
  2. Brown the beef, about 10 minutes. Heat the oil in a heavy Dutch oven or other large, lidded pot over medium-high heat. Arrange the beef in a single layer, working in batches if needed, and brown it on several sides. Transfer the pieces to a plate. A little browning on the bottom of the pot is useful; if it looks close to burning, lower the heat.
  3. Soften the onions, about 8 minutes. Reduce the heat to medium and add the onions to the same pot. Stir often, scraping up the browned bits, until the onions are soft and lightly golden. Add the garlic and ginger and cook for about 1 minute, stirring so the garlic does not scorch.
  4. Bloom the spices, about 2 minutes. Add the curry powder, coriander, cumin, turmeric, cinnamon stick, bay leaf, and remaining ½ teaspoon salt. Stir for about 30 seconds, then add the tomatoes and their juices. Cook for another 1½ minutes, stirring, until the mixture smells fragrant and begins to thicken.
  5. Start the braise, 30 minutes. Pour in the beef broth and stir to loosen anything stuck to the base. Return the beef and any juices on the plate to the pot. Bring the liquid to a gentle simmer, cover, and lower the heat. Keep the simmer quiet rather than letting it boil hard; vigorous boiling can make beef tighten and the sauce reduce too quickly. Cook for 30 minutes.
  6. Add the potatoes and finish the braise, 35 minutes. Stir in the potatoes, cover the pot again, and simmer gently for 35 minutes. Check once or twice that the bottom is not sticking and that there is still liquid in the pot. If the sauce becomes very thick before the beef is tender, add broth or water ¼ cup (60 ml) at a time. The beef should yield easily when pressed with a fork; if it does not, continue simmering and check every 10 minutes. Timing can vary with the size of the cubes and the cut of beef.
  7. Stir in the coconut milk, about 10 minutes. Pour in the coconut milk and simmer uncovered for 10 minutes, stirring gently once or twice. The sauce should look creamy and coat the beef and potatoes. For food safety, check a large beef cube with an instant-read thermometer: USDA FSIS gives 145°F (63°C) as the safe minimum for whole cuts of beef, followed by a 3-minute rest. The longer simmer is intended to make chuck tender as well as bring it safely through temperature.
  8. Finish and rest, 5 minutes. Turn off the heat, remove the cinnamon stick and bay leaf, and stir in the lime juice and cilantro. Taste the sauce and adjust the salt. Leave the curry to stand for 5 minutes before serving; this gives the sauce a moment to settle and keeps the first spoonful from being overly hot.

Tips

  • Choose a braising cut. Chuck is a good choice because its connective tissue softens during a slow simmer. Stewing beef also works, though pieces in a mixed pack can vary in size and tenderness. Avoid very lean steak cuts, which can become dry before the sauce develops its full flavor.
  • Keep the heat gentle. Once the covered pot reaches a simmer, lower the burner until you see only occasional bubbles. If the sauce boils rapidly, check the heat and add a splash of broth if needed. A heavy pot helps distribute heat and reduces the chance of scorching.
  • Brown in uncrowded batches. If the beef pieces touch or pile up, they release moisture and steam. Give them space and let them take on color before turning. If you are short on time, skip browning only as a last resort: the curry will still cook, but it will have a less developed, less savory flavor.
  • Adjust thickness at the end. For a thicker sauce, simmer uncovered for a few extra minutes before serving. For a looser curry, stir in a little hot broth. Add chili gradually, since fresh chilies vary in heat, and balance a particularly rich sauce with lime rather than extra salt.

Serving Suggestions

Serve the curry hot over steamed basmati or long-grain rice so the coconut-tomato sauce has something to soak into. Ugali, a firm maize-meal staple eaten in Tanzania and neighboring countries, is another satisfying accompaniment; diners can pinch off pieces and use them to scoop up the sauce. Chapati or another soft flatbread works well too, especially for a more casual meal.

For contrast, add a simple side of sliced tomato and cucumber, lightly dressed with lime and a pinch of salt, or serve a crisp green salad. A little extra chopped cilantro and lime at the table brightens the rich sauce. If serving rice, make it while the curry finishes its final simmer so both arrive hot.

Variations

Make it hotter: Add a sliced green chili with the garlic and ginger, or serve sliced chili at the table so each person can adjust their portion. For a milder curry, leave it out entirely; the ground spices still give the dish plenty of fragrance.

Use another protein: Goat is a fitting alternative and may need more simmering time, so check tenderness rather than relying only on the clock. For chicken, use bone-in pieces for a braise and cook them until the thickest part reaches 165°F (74°C), the USDA FSIS safe minimum for poultry; chicken will generally need less time than chuck.

Change the vegetables: Replace some or all of the potatoes with peeled sweet potato or carrots, cut into similarly sized chunks. Add quick-cooking vegetables such as peas near the end so they keep their shape. These swaps make the curry sweeter or fresher in character, so taste and adjust the lime and salt before serving.

Make it without coconut: Replace the coconut milk with 1½ cups (355 ml) beef broth and stir in ¼ cup (60 ml) plain yogurt off the heat, if desired. The sauce will be less rich and will not have coconut’s distinct flavor. Do not boil after adding yogurt, as it may separate.

Storage and Reheating

Transfer leftovers to shallow, covered containers and refrigerate within 2 hours of cooking. The curry keeps for 3–4 days in the refrigerator. The potatoes absorb sauce as they sit, so the chilled curry may look thicker than it did in the pot.

Reheat only the portion you plan to eat, either in a covered saucepan over medium-low heat or in the microwave, stirring partway through. Add a splash of water or broth if the sauce is too thick. Reheat leftovers to 165°F (74°C), checking the center with a food thermometer. For freezing, cool and pack the curry in airtight freezer-safe containers; use within 2–3 months for best quality. Thaw it in the refrigerator before reheating. Potatoes can soften after freezing, but the curry remains suitable to eat when handled and reheated safely.

Frequently Asked Questions

Is Tanzanian beef curry always made with coconut milk?

No single version represents every Tanzanian household or region. Coconut milk is a natural fit for a creamy coastal-style curry, but recipes and local preferences vary. You can use broth instead for a lighter sauce, or adjust the amount of coconut milk to suit the flavor and texture you prefer.

Can I make this curry ahead?

Yes. Cook it completely, cool it promptly, and refrigerate it in a covered container within 2 hours. It keeps for 3–4 days, and the spices often seem more integrated the next day. Reheat the portion you need to 165°F (74°C), adding a little broth if the sauce has thickened.

Can I cook it in a slow cooker?

You can, though the timing and texture will differ. Brown the beef and soften the onions and spices in a pan first for better flavor, then transfer them with the tomatoes and broth to the slow cooker. Cook until the beef is tender, add the potatoes partway through so they do not overcook, and stir in coconut milk near the end. Follow your appliance’s instructions and verify the beef reaches the stated safe temperature.

Why is my beef still tough after the listed cooking time?

Chuck cubes are not always identical, and a pot simmering at too low a temperature can take longer than expected. Keep the curry at a gentle simmer and continue cooking in 10-minute intervals until a fork slides into the beef easily. Adding the coconut milk before the beef is tender will not fix toughness, so wait until the braise has reached that texture.

What can I use instead of curry powder?

Use a curry blend you enjoy, such as a Swahili-style blend, in the same amount and adjust the salt after simmering. If you do not have a blend, combine about 1 teaspoon each of ground coriander and cumin with ½ teaspoon turmeric and a small pinch of black pepper, then add chili or cinnamon only if you want those flavors. The result will be simpler and may not taste exactly like a prepared curry powder.

Related

More recipes to cook

Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes

Spotted an error? Tell us and we will correct it (corrections policy).