Sri Lankan Beef Curry: A Fragrant, Slow-Simmered Dish

Updated November 4, 2026

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

Jump to recipe

Sri Lankan Beef Curry: A Fragrant, Slow-Simmered Dish

Sri Lankan beef curry is a warmly spiced, slow-simmered curry made with beef, aromatics, roasted curry powder and coconut milk. It comes from Sri Lanka, where recipes vary by region and household; this version is rich and gently tangy, and is served with rice, roti or string hoppers. Before you begin, allow about two and a half hours from chopping to serving, most of it hands-off simmering.

What You’ll Need

  • 2 lb (900 g) boneless beef chuck, trimmed and cut into 1¼-inch (3 cm) cubes. Chuck has enough connective tissue to become tender during a long simmer.
  • 2 tbsp (30 ml) neutral oil, such as canola or sunflower oil.
  • 2 medium yellow or red onions, about 10 oz (300 g), finely sliced.
  • 5 garlic cloves, about ½ oz (15 g), finely chopped or grated.
  • 1 tbsp (15 g) peeled, grated fresh ginger.
  • 1 or 2 fresh green chilies, sliced lengthwise; use one for a milder curry or two for more heat.
  • 10 to 12 fresh curry leaves, if available. They bring a distinctive citrusy, savory aroma. If you cannot find them, leave them out rather than expecting a bay leaf to taste the same.
  • 1 cinnamon stick, about 3 inches (7.5 cm), plus 4 green cardamom pods and 4 whole cloves.
  • 2 tbsp (about 16 g) Sri Lankan roasted curry powder. If unavailable, use a roasted South Indian curry powder, or toast a general curry powder briefly in a dry pan; the flavor will be less specifically Sri Lankan.
  • 1 tsp (2 g) ground chili powder, such as cayenne or Kashmiri chili powder. Adjust to taste and to the heat of your curry powder.
  • ½ tsp (1 g) ground turmeric and 1 tsp (2 g) ground black pepper.
  • 1 medium tomato, about 5 oz (150 g), chopped, or ½ cup (120 g) chopped canned tomato.
  • 1 tbsp (15 ml) white or apple cider vinegar, 1 tsp (5 g) tamarind paste, and 1 tsp (6 g) fine salt to start.
  • 1 can coconut milk, 13.5 fl oz (400 ml), well shaken, and 1 cup (240 ml) water or unsalted beef stock.
  • For serving: cooked rice, roti or another flatbread; chopped cilantro or lime wedges are optional.

Step-by-Step

  1. Prepare the beef and aromatics. Pat the beef dry with paper towels so it can brown instead of steaming. Cut it into similarly sized cubes, trimming away any tough, thick exterior pieces of fat while leaving some marbling. Slice the onions, chop the tomato, and prepare the garlic, ginger and chilies. Measure the spices, vinegar, tamarind and liquids before you start cooking. This recipe does not require marinating: the long simmer gives the beef time to take on the curry flavor.
  2. Brown the beef in batches, about 12 minutes. Heat the oil in a heavy, lidded pot or Dutch oven over medium-high heat. Add the beef in a single layer, leaving space between pieces; work in two batches if needed. Brown the cubes on several sides, turning them as they color. They do not need to cook through at this stage. Transfer them to a plate. If the pot is very dry, add a teaspoon of oil before browning the next batch. Avoid crowding, which releases moisture and prevents a good sear.
  3. Soften the onions and whole spices, about 8 minutes. Lower the heat to medium. Add the onions, cinnamon stick, cardamom and cloves to the same pot. Stir and scrape up browned bits from the bottom. Cook until the onions are soft and beginning to turn golden, stirring often so they do not scorch. Add the curry leaves and green chilies for the last minute. If the browned bits look black or smell burnt, wipe them out before continuing; bitter burnt spices can carry through the whole pot.
  4. Bloom the ground spices, about 1 minute. Stir in the garlic and ginger and cook for about 30 seconds, then add the roasted curry powder, chili powder, turmeric and black pepper. Stir constantly for another 30 seconds. The mixture should smell fragrant, not acrid. If it sticks, loosen it with a spoonful of water rather than letting the spices burn. Roasted curry powder is already toasted, so it needs only a brief turn in the oil.
  5. Build the sauce, about 4 minutes. Add the chopped tomato and salt, stirring until the tomato softens and begins to break down. Pour in the vinegar, tamarind paste, coconut milk and water or stock. Stir well, scraping the pot to lift any browned flavor from the bottom. Return the beef and any juices on the plate to the pot. The liquid should come close to covering the meat; add a little water if needed. Taste the liquid carefully and add a little more salt only if it needs it.
  6. Cover and simmer until tender, about 1 hour 32 minutes. Bring the curry just to a gentle simmer, then lower the heat and cover the pot. Keep the liquid at a quiet bubble rather than a rolling boil. Stir every 20 to 25 minutes, making sure the bottom is not catching. At around the one-hour mark, check the liquid level and add ¼ cup (60 ml) water if the sauce is getting too thick before the beef is tender. The beef is ready when a fork goes in easily and a cube separates with gentle pressure. If it is still chewy, continue simmering and check again in 10-minute intervals; tenderness matters more than the clock.
  7. Check safety, adjust the sauce and serve. Check the center of the largest beef pieces with a food thermometer. USDA FSIS lists 145°F (63°C) with a 3-minute rest as the safe minimum for whole cuts of beef; ensure the pieces reach that temperature and rest in the hot curry for at least 3 minutes before serving. For this braise, the beef will generally be cooked well beyond that point as it becomes tender. If the sauce is thinner than you like, uncover the pot and simmer gently for a few minutes, stirring. Taste and adjust salt, vinegar or tamarind in small amounts, then serve hot with rice or roti.

Common Mistakes

Adding all the beef at once. A crowded pot cools down and traps steam, so the meat turns gray rather than browning. Brown in batches and give each piece a little room. Cooking the curry at a hard boil. Vigorous bubbling can make the sauce reduce too quickly and the beef may cook unevenly. Keep it at a gentle simmer, with only occasional small bubbles.

Using curry powder that is stale or scorched. Old spices can taste flat, while burned spices turn bitter in seconds. Smell the powder before using it and keep the heat moderate when it goes into the pot. Expecting lean beef to behave like chuck. Lean steak can become dry and firm during a long braise. Chuck or another braising cut is a better choice. Trying to fix texture with extra liquid. A chewy cube usually needs more time, not a thinner sauce; add water only if the pot is drying out before the beef softens.

Tips

Choose a heavy pot with a well-fitting lid, which holds heat steadily and helps prevent the coconut milk from reducing too fast. Cut the beef into even cubes so they finish at about the same time. If your curry powder is mild, increase the chili gradually at the table rather than making the whole pot too hot for everyone.

Roasted Sri Lankan curry powder is the most characteristic ingredient here. It is a dark, aromatic blend whose ingredients and proportions vary. If you have whole spices and want a closer flavor than standard curry powder offers, lightly toast coriander, cumin and fennel seeds in a dry pan, cool them, and grind them with a little black pepper and cinnamon. This is an approximation, not an exact replacement; the finished curry will vary with the spice blend.

Tamarind adds a rounded sourness, while vinegar gives a sharper tang. If tamarind paste is difficult to find, leave it out and add a little extra vinegar or a squeeze of lime at the end; the curry will be brighter and less fruity. Add sour ingredients in small increments, because their strength varies by brand and fruit. Serve with plain rice to balance the sauce, and offer lime wedges, sliced chilies or chopped cilantro separately so people can adjust their plates.

To make the curry ahead, cool it promptly in shallow containers and refrigerate within 2 hours. It keeps for 3 to 4 days refrigerated. Reheat only the portion you need until it reaches 165°F (74°C), checking with a food thermometer; add a splash of water if the sauce has thickened. You can also freeze cooled portions for longer storage and thaw them in the refrigerator before reheating.

Troubleshooting

The beef is still tough after the stated simmer. Beef cuts and cube sizes vary. Cover the pot and continue cooking at a gentle simmer, checking every 10 minutes. Add a small splash of water if the sauce is becoming too thick. Stop when the beef yields easily to a fork, rather than relying on a fixed finish time.

The curry tastes bitter. The ground spices or onions may have scorched. If the bitterness is mild, transfer the curry to a clean pot without scraping up the burnt layer, then balance carefully with a little coconut milk and salt. If it tastes strongly burnt, the flavor may not be recoverable. Next time, lower the heat before adding spices and stir continuously while they bloom.

The sauce is too thin. Take off the lid and simmer gently until it reaches the consistency you want, stirring more often as it reduces. Avoid a high boil, which can make coconut milk look separated. The sauce is too thick or oily. Stir in hot water a tablespoon or two at a time. A little oil on top is normal; stir it back in or skim a small amount if you prefer a lighter-looking sauce.

It tastes flat, too sour or too hot. For a flat curry, add salt a pinch at a time, then reassess; a little extra vinegar or tamarind can sharpen the flavor if needed. If it is too sour, stir in coconut milk and avoid adding more acid. If it is too hot, serve with extra rice or stir in a little coconut milk. These changes soften the flavor but will not remove chili heat entirely.

Frequently Asked Questions

Can I make Sri Lankan beef curry without coconut milk?
Yes. Use 1½ cups (360 ml) water or unsalted stock in place of the coconut milk and keep the pot covered. The sauce will be thinner and less creamy, so uncover it near the end and simmer until it reduces to your liking.

What cut of beef works best?
Beef chuck is a dependable choice because it becomes tender during a slow braise. Brisket or beef shin can also work, but their cooking times may differ. Avoid very lean cuts if you want soft, pull-apart pieces.

Is Sri Lankan beef curry very spicy?
It can be, but the heat is adjustable. Start with one green chili and a small amount of chili powder, especially if your curry powder is already hot. You can serve sliced chilies on the side for people who want more heat.

Can I use a slow cooker?
Yes. Brown the beef and cook the onions and spices on the stove first for better flavor, then transfer everything to the slow cooker. Add the coconut milk and liquid, cover, and cook until the beef is fork-tender according to your appliance; slow-cooker timing varies. Check that the beef reaches the safe minimum temperature described above.

Can I make the curry a day ahead?
Yes. Cool it promptly and refrigerate it within 2 hours. Reheat it to 165°F (74°C) before serving. The sauce may thicken as it chills, so loosen it with a little water while reheating.

What should I serve with it?
Plain rice is a classic, easy pairing, and roti or string hoppers also work well. A cooling cucumber salad or simple vegetable side can round out the meal without competing with the curry’s spices.

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).