New here? Download your free Sri Lankan Recipe Starter Guide →
CeylonCookingAuthentic • Sri Lankan • Recipes

Harak Mas Curry

Sri Lankan Beef Curry (Beef Curry)

Sri Lankan beef curry, known as harak mas curry, is chunks of beef slow-cooked until fork-tender in a dark, deeply spiced gravy of roasted Sri Lankan curry powder, cinnamon, cloves, cardamom, goraka and coconut milk. This is a weekend curry, the kind that turns a tough, cheap cut into something rich and meltingly soft. It needs time more than skill, and it rewards every minute of that long, lazy simmer.

Sri Lankan beef curry with tender beef chunks in a dark roasted spice coconut gravy
Chicken, Meat and Egg CurriesMeat

The big, slow Sunday curry: chunks of beef cooked down until fork-tender in a dark, fiery, deeply spiced gravy.

Total time
115 min
25 min prep · 90 min cook
Serves
5 people
Difficulty
Medium
Spice level
Authentic Hot
Country help
USA · UK · AU · CA substitutes included

Nutrition

Estimated values, per serving.

380
kcal
30g
Protein
8g
Carbs
25g
Fat

About This Dish

Ask for harak mas curry in a Sri Lankan home and you'll get a bowl of dark, glistening beef in a gravy so deep it looks almost black, fragrant with roasted spice and tart with goraka. Harak means cattle and mas means meat, so the name is simply 'beef curry', but it tastes nothing like a mild stew. The meat is cooked on a base of dark roasted curry powder, cinnamon, cloves and cardamom, soured with goraka and finished with coconut milk, until the whole thing is fiery, sour and roasted all at once.

Beef curry has a particular place at the table. Beef was never an everyday meat in many Sri Lankan kitchens, so a pot of harak mas curry tends to mark a weekend, a gathering or a feast rather than a quick weeknight dinner. It carries strong Muslim and Tamil roots, where beef is more central to the cooking, and over generations it became one of the great slow curries of the island. And because the cheaper, harder-working cuts are exactly the ones that taste best here, it's a dish built on patience rather than expense.

The long cook is what makes a good one. The beef has to simmer gently for well over an hour, sometimes closer to two, until the connective tissue melts and the chunks turn soft enough to break with the side of a spoon. As it cooks the gravy reduces and darkens, the goraka dissolves into a smoky sourness, and the roasted spices sink right into the meat. Rush it and you get rubbery, chewy beef in a thin sauce. Give it time and you get the real thing: tender, dark and intensely savoury.

Every family guards its own balance. Some lean harder on the goraka for a sharper sour edge, some add a little more chilli for serious heat, and southern cooks especially like it dark and tart. Like most roasted-spice curries it only improves overnight, which is why it is so often made a day ahead and reheated, tasting even deeper the second day. Served against plain rice, red rice or a buttery ghee rice, it's a curry people quietly go back to for a third spoonful of gravy.

Roasted Curry Powder and Goraka: Colour and Tang

Two ingredients give Sri Lankan beef curry its character, and the first is Sri Lankan roasted (dark) curry powder. This is not the bright yellow curry powder most people keep in the cupboard. The spices, usually coriander, cumin and fennel along with curry leaves, are dry-roasted in a pan until they turn a deep chocolate brown before being ground. That roasting is the whole point. It trades raw, grassy notes for a toasty, almost coffee-like depth, and that's what gives the gravy its dark colour and roasted flavour. With beef, which can take a heavy hand of spice, this dark blend is the backbone rather than a sprinkle, and the spices are toasted a second time onto the meat itself for even more depth.

Goraka is the second one, the sun-dried fruit of the Garcinia tree. You'll also hear it called Malabar tamarind or brindleberry. It's the souring agent that defines so many Sri Lankan meat and fish curries. The dried pieces look like blackened, leathery segments, and they bring a smoky, almost fermented sourness that's rounder and deeper than vinegar or lime. In beef curry, goraka does two jobs: it cuts through the richness of the fatty meat and coconut milk with a tart edge, and it darkens the gravy as it slowly dissolves over the long simmer. A little goes a long way, so it's added whole or roughly broken and fished out later, or soaked and its dark soaking water poured in.

What It Should Taste Like

You want deep roasted-spice flavour and a real chilli kick up front, a smoky goraka sourness running underneath, and mellow coconut rounding it all out. The beef should be fork-tender and the gravy dark, thick and clinging. It should taste roasted, sour and fiery, not pale and mild.

Ingredients

This recipe makes 5 servings. Change the number and every amount below updates with it. Substitutes for hard-to-find items are in the sidebar.

Cooking for
5 servings

The US button converts grams, millilitres and centimetres to ounces, cups and inches. Spoon measures stay exactly as they are.

Open this in the recipe converter

The Beef and Marinade

  • Beef chuck or shintrimmed and cut into 4 cm chunks800 g
  • Sri Lankan roasted curry powder2 tbsp
  • Chilli powderto taste1-2 tsp
  • Ground turmeric½ tsp
  • Salt1 tsp

The Pot

  • Coconut oil3 tbsp
  • Onionfinely sliced2
  • Garlicminced5 cloves
  • Gingerminced1 tbsp
  • Curry leaves2 sprigs
  • Pandan (rampe)5 cm piece
  • Cinnamon1 stick
  • Cloves4
  • Cardamomlightly crushed4 pods
  • Gorakaor 1 tbsp tamarind paste3 pieces
  • Tomatochopped1
  • Thin coconut milkor water300 ml
  • Thick coconut milk200 ml
  • Saltto taste

Method

Follow these 9 steps. Each one explains not just what to do, but why it matters.

Ready to Start Cooking?

The screen shows one step at a time, with just the ingredients that step needs at your serving count, a timer you can tap, and your phone kept awake.

  1. 01

    Trim and Cube the Beef

    Trim away any tough sinew and excess fat, then cut the beef into even chunks around 4 cm. Pat the pieces dry.

    Honestly, the cut and the cube size matter more than you'd think. Choose a hard-working cut like chuck or shin, not a lean steak. It's the connective tissue in these cheaper cuts that melts down over a long cook and gives you that soft, gelatinous tenderness. Lean cuts just turn dry and stringy. Cut the chunks generously and evenly so they all cook at the same rate and stay juicy instead of shrinking to nothing. A little marbled fat left on is a good thing, as it carries flavour and bastes the meat as it simmers. Patting the pieces dry helps the spices cling and the meat brown rather than steam.

    Beef chuck cut into even chunks and patted dry before making Sri Lankan beef curry

    Tip: Don't cut the beef too small. Big 4 cm chunks shrink during the long simmer and keep their bite, while small pieces overcook and fall apart into shreds.

  2. 02

    Marinate the Beef

    Toss the beef with the roasted curry powder, chilli powder, turmeric and salt until every chunk is coated. Leave it for 30 minutes, or overnight in the fridge if you can.

    This early coating seasons the meat right through, not just on the surface. It gives the spices time to bloom against the beef, so they taste integrated rather than dusted on at the end. Beef is dense and benefits from a longer marinade than chicken, so an overnight rest in the fridge genuinely pays off here, letting the turmeric, chilli and curry powder soak in. You'll know it's ready when every piece is evenly dark rust-red and slightly tacky to the touch. The salt also begins to tenderise the meat before it ever hits the pot.

    Beef chunks coated with roasted curry powder, chilli, turmeric and salt

    Tip: If you have the time, spice the beef the night before. With tough cuts, a long marinade is the easiest way to get deeper flavour and a head start on tenderness.

  3. 03

    Build the Aromatic Base

    Heat the coconut oil over medium heat. Add the curry leaves, pandan, cinnamon, cloves and cardamom and let them crackle, then add the sliced onion and cook until soft and golden, about 8 minutes.

    This is the fragrant foundation the curry is built on. Whole spices and curry leaves hit the hot oil and instantly crackle, releasing oils that perfume the fat with cinnamon, cloves and cardamom. Let the onion soften slowly, from sharp and raw to sweet, melting and golden. Two onions take longer than you'd think, and that sweetness matters because it balances the heavy chilli and sour goraka coming next. Don't rush it to a hard brown. Soft and golden is the point.

    Onion, curry leaves, pandan, cinnamon, cloves and cardamom frying in coconut oil

    Tip: Keep the heat at medium. Whole spices and curry leaves will scorch and turn bitter in seconds if the oil is smoking hot.

  4. 04

    Add the Garlic, Ginger and Tomato

    Stir in the garlic and ginger and fry for a minute, just until fragrant. Then add the chopped tomato and cook until it collapses into the base.

    Garlic and ginger burn quickly, so they go in after the onion softens, not at the start. A single minute is enough. The moment the raw bite turns warm and savoury, they're done. Then the tomato melts into the base. Its acidity cuts through the richness to come, and its juices loosen everything into a rough, fragrant paste. Cook until it stops looking like chopped tomato and starts looking like sauce. That sauce is the cushion the beef will sear against.

    Garlic, ginger and tomato cooking into the golden onion curry base

    Tip: Mince the garlic and ginger finely. You want them to melt into the base, not catch and burn as stray chunks.

  5. 05

    Sear the Spiced Beef

    Turn the heat up a little, add the marinated beef and stir to coat. Let it cook for 6 to 8 minutes, turning, so the spices toast onto the meat and the chunks brown all over.

    This is the most important flavour-building step and the one beginners rush. The spice-coated beef sits against the hot pan and the curry powder toasts a second time, deepening from rust to dark brown and building that roasted, almost smoky note. The meat picks up colour on its edges too. You'll smell it shift from raw spice to something rich and savoury. Keep turning so the spices catch all over without burning. The beef doesn't need to cook through here. You're just bonding it with the spices and building the dark base of the gravy.

    Spiced beef chunks searing in the aromatic curry base until dark and roasted

    Tip: Don't add liquid early. This dry sear is what gives the curry its deep colour and roasted depth, and you can't get it back later.

  6. 06

    Add the Goraka and Liquid

    Tuck in the goraka pieces, then pour in the thin coconut milk or water so the beef is just covered. Stir to lift all the toasted spice off the bottom of the pot, and bring it to a gentle simmer.

    The liquid deglazes the pan and lifts every bit of toasted spice stuck to the bottom into the sauce. That's where a lot of the colour and flavour lives. The goraka goes in now so it has the whole long cook to slowly dissolve and release its smoky sourness into the gravy, darkening it as it goes. Use enough liquid to just cover the meat. Too much and you'll be simmering forever to reduce it. Too little and the beef can't cook evenly. If you're using tamarind paste instead of goraka, hold it back and stir it in later. It doesn't need as long.

    Goraka pieces and thin coconut milk added to the seared beef curry pot

    Tip: Break or lightly score the goraka pieces so they release their sourness faster. Count them in so you can fish them out before serving.

  7. 07

    Simmer Low and Slow Until Tender

    Cover and simmer gently for 75 to 90 minutes, stirring now and then, until the beef is fork-tender and the gravy has reduced and darkened. Top up with a little hot water if it dries out before the meat is soft.

    Here's the thing: patience does all the work here, and there's no shortcut on the stove. A low, lazy simmer melts the connective tissue in the beef slowly slowly, turning tough chunks soft enough to break with a spoon. The gravy reduces, darkens and concentrates around them. Keep it at a steady, gentle bubble, not a hard boil. A hard boil toughens the meat and tears it apart before it's ready. Check it every 20 minutes or so. The beef is done when it yields easily to a fork and a piece pulls apart without resistance. Cook to tender first, worry about sauce thickness second.

    Sri Lankan beef curry simmering low and slow until the gravy darkens and thickens

    Tip: If you want to cut the time, a pressure cooker does the same job in around 25 to 30 minutes. Just do the searing first, then reduce the gravy uncovered at the end.

  8. 08

    Finish with Thick Coconut Milk

    Stir in the thick coconut milk and simmer very gently for 5 minutes, no hard boiling. Fish out the goraka pieces, taste, and adjust salt and sourness.

    The thick coconut milk goes in at the very end so it stays smooth and rounded, not greasy, and it softens the fiery, sour edges into something rich and balanced. The secret is gentle heat. A hard boil splits coconut milk into oily flecks and a grainy curd. A bare simmer keeps it silky and lets it marry with the dark gravy. This is your moment to balance the whole dish. Coconut milk mutes seasoning, so you'll usually need more salt than you expect. The sourness should be present but not sharp, so taste and adjust before you call it done.

    Thick coconut milk stirred gently into dark Sri Lankan beef curry

    Tip: Once the coconut milk is in, never let it reach a rolling boil. Keep it just trembling, and the gravy stays glossy and dark instead of curdling.

  9. 09

    Rest, Then Serve

    Take it off the heat and let it rest for at least 10 minutes before you serve it. Or cool it and refrigerate overnight. Like most roasted-spice curries, it tastes even better the next day.

    Resting really does improve this curry. Off the heat, the gravy settles and thickens. The spices mellow and meld, and the sharp, separate notes of chilli, goraka and roasted spice round into one deep, savoury flavour. Ten minutes is enough to notice the difference, but a night in the fridge is better still. That's exactly why beef curry is so often made a day ahead for gatherings. Reheat it gently over low heat, adding a splash of water if the sauce has thickened too far. It'll taste like you fussed over it for hours.

    Finished Sri Lankan beef curry resting in a bowl with dark glossy gravy and curry leaves

    Tip: Make it the day before a feast. The flavour deepens overnight, and you free up the stove for everything else on the day.

Common Mistakes to Avoid

  • Rushing the simmer. Beef needs well over an hour at a gentle bubble to turn tender. There's no way to hurry it on the stove.
  • Using a lean cut like steak instead of a tough, gelatinous one like chuck or shin. That leaves the meat dry and stringy.
  • Using ordinary yellow curry powder instead of the dark roasted kind loses the toasty depth and dark colour.
  • Skipping the spice-sear and just simmering everything in liquid. That throws away the roasted flavour.
  • Boiling hard after the thick coconut milk goes in. It splits into oily, grainy flecks.
  • Cutting the beef too small, so it shreds and overcooks instead of holding its shape.
  • Forgetting to fish out the goraka before serving. Someone ends up with a hard, sour piece in their bowl.
  • Under-salting. Coconut milk mutes seasoning, so the dish needs more salt than you think.

Serving Ideas

  • With plain steamed rice, dhal and a sambol for a hearty rice-and-curry plate.
  • Spoon it over red rice. The nutty bite stands up to the rich, dark gravy.
  • With buttery ghee rice or coconut rice for a more indulgent spread.
  • Alongside a cooling pol sambol or lunu miris. It cuts through the heat and richness.
  • Mopped up with roti or bread, with plenty of gravy for dipping.

Building a whole plate around it? Start from our beginner rice and curry menu, which sets out what to cook alongside it and in what order.

Storage and Make-Ahead

Keeps for 3 to 4 days in a sealed container in the fridge and freezes well for up to 3 months. The flavour deepens overnight, so it's ideal made ahead. Reheat gently over low heat so the coconut milk doesn't split, adding a splash of water if the gravy has thickened too much.

Two Ways to Cook It

Beginner version

Use ready-cut stewing beef and a jar of roasted curry powder so there's nothing to trim or grind. Swap the goraka for 1 tbsp of tamarind paste, keep the chilli to 1 tsp, and let it simmer slowly on the stove. Don't skip the spice-sear before adding liquid. That one step is what makes it taste right.

Authentic version

Roast and grind your own curry powder, use bone-in or marbled chuck for richness, and sour the gravy with whole goraka rather than tamarind. Marinate the beef overnight, simmer it low and slow in a clay pot for the deepest flavour, finish with freshly pressed thick coconut milk off the heat, and rest it overnight before serving.

Lighter and Healthier Version

Beef curry is naturally rich, since it leans on a fatty cut and coconut milk. A few small changes lighten it without losing the dark, roasted, fiery character that makes it harak mas curry. None of these touch the flavour balance. They simply ease back on the heaviest elements.

Trim and Choose Leaner

Trim the visible fat before cooking, and choose a leaner but still slow-cooking cut like shin or skirt. They stay tender over a long simmer with less of the fat that lean steak lacks.

Lighter Coconut Milk

Use light (reduced-fat) coconut milk for the simmer and keep only a small amount of thick coconut milk for the final stir. You lose a little body, but you keep the creamy finish on far less saturated fat.

Less Oil to Start

Bloom the aromatics in 1 to 2 tbsp of oil instead of 3 in a non-stick pan. The spice-searing step works just as well with less fat.

Bulk It Out with Vegetables

Add potato, carrot or green beans for the last part of the simmer. They soak up the gravy, add fibre, and mean a little beef goes further per serving.

Skim the Fat

If you make it a day ahead, the fat sets on top in the fridge and lifts off easily with a spoon, so you can cut the richness before you reheat.

Frequently Asked Questions

Sri Lankan beef curry, known as harak mas curry, is beef chunks slow-cooked until fork-tender in a dark, deeply spiced gravy made from roasted curry powder, cinnamon, cloves, cardamom, goraka and coconut milk. Harak means cattle and mas means meat, so the name simply translates as beef curry. It's robust, sour and properly fiery, and it's a weekend or celebration dish, not a quick weeknight one.

Cooked It? Tell Us How It Went

Your notes on this sri lankan beef curry help the next person get it right: what you swapped, what you would do differently, where the recipe should have warned you. Tap a star if you are in a hurry, or write a few lines if you have a minute.

In a hurry? Just tap a star
Your rating

The useful ones say what you did differently and how it turned out.

Reviews are read before they go up. No links, no spam.

You Might Also Like

Sri Lankan Home Cooking Starter Pack

40 authentic Ceylon recipes made simple for foreign kitchens: spice guide, pantry checklist, substitute guide, 7-day meal plan and printable shopping lists.

Get the Starter Pack