This is a Thai Massaman curry made with ground chicken meatballs instead of whole pieces — a practical swap that cuts cooking time and gets seasoning into every bite. The meatballs are mixed with Thai aromatics before they go into the pot, so the curry sauce and the protein season each other from two directions. If you want a rich, coconut-based curry that comes together in one pan on a weeknight, this is a solid choice.
What makes this version work
Two things matter most here. First, the aromatics go into the meatball mix — lemongrass, kaffir lime, fish sauce — not just into the sauce. Ground chicken is mild, and without that internal seasoning it would taste like a blank sponge floating in curry. Second, the meatballs are browned before simmering. That brief sear sets the surface so they hold together in the sauce rather than breaking apart into loose meat. Don’t rush the browning step; a pale, steamed meatball will fall apart the moment the coconut milk goes in. Ground chicken must reach an internal temperature of 165°F (74°C) — never serve it pink at the center.
About the ingredients
- Galangal: Looks like ginger but tastes sharper and more piney. It’s not a direct substitute for ginger — if you can’t find fresh galangal, frozen slices work well and are available at most Asian grocery stores.
- Kaffir lime leaves: Used in both the meatballs and the sauce. Remove the tough center rib before chopping them into the meatball mix or they’ll leave fibrous bits. Dried leaves are a weak substitute; frozen leaves are far better.
- Palm sugar: Mellower and less sharp than brown sugar. Light brown sugar is a workable swap at the same quantity.
- Tamarind paste: Adds the sour note that balances the coconut milk. Lime juice can stand in, but add it at the end rather than during cooking — it turns bitter if it simmers too long.
- Fish sauce: Skip the salt and use this instead. It doesn’t taste fishy in the finished dish; it just adds depth. Soy sauce is a passable substitute if needed.
What can go wrong
- Meatballs that fall apart in the sauce: This usually means the mix was too wet or they weren’t browned properly. Chill the shaped meatballs for 15 minutes before browning — it firms them up significantly.
- Sauce that tastes flat or thin: Massaman paste needs to fry in oil for a couple of minutes before the liquid goes in. If you add coconut milk straight to uncooked paste, the sauce will taste raw and one-dimensional. Wait for the paste to darken slightly and smell fragrant.
- Potatoes that turn to mush: Cut them on the larger side — at least 1-inch chunks — and add them partway through simmering rather than at the start. Small pieces dissolve before the meatballs are cooked through.
- Sauce that splits and looks greasy: This happens when the heat is too high. Coconut milk needs a gentle simmer, not a rolling boil. If it splits, lower the heat and stir in a small splash of water.
- Meatballs that are dense and rubbery: Overworking the ground chicken develops the protein too much. Mix just until the ingredients are combined — stop as soon as you don’t see dry patches.
Keeping and reheating
Leftovers keep well in the fridge for up to 3 days in a sealed container — the flavors actually improve overnight as the meatballs absorb more of the sauce. Reheat gently on the stovetop over low-medium heat, adding a splash of water or coconut milk if the sauce has thickened too much. Skip the garnish — not worth the extra dish. The curry also freezes well for up to 2 months; freeze it without any fresh herb garnishes and add those after reheating. Thaw overnight in the fridge before reheating. Make sure reheated meatballs are piping hot all the way through before serving.

Gorgeous Thai Chicken Massaman Curry Recipe
Ingredients
4 medium chicken thighs - boned- 1 tablespoon suet (beef fat) - optional
2 sticks lemongrass
1 ¼ cups chicken stock (chicken broth or chicken bouillon)
4 pieces kaffir lime leaves- 1 square-inch galangal - or ginger if required
2 medium red chili (red chilli in British English)
½ tablespoon ground cinnamon- 5 medium cardamom pods
4 cloves garlic
½ teaspoon cumin seeds - or powder
1 teaspoon cilantro (coriander)
½ teaspoon ginger
1 can coconut milk
1 pinch salt
1 pinch ground black pepper
1 large white onion
4 cloves garlic
1 stick butter
3 tablespoons vegetable oil
1 tablespoon palm sugar - or caster sugar
1 medium lime
1 large potatoes
½ cup peanuts
Instructions
- Finely chop the lemongrass, galangal (or ginger), kaffir lime leaves, garlic, and red chillies, then pummel them together in a pestle and mortar.
- Set the paste aside and clean out the pestle and mortar. You’ll be using it again soon.
- Chop the meat into small chunks and drop them into a blender.
- Add half of the paste you made above and season as desired.
- Add some form of fat at this stage. I used beef fat, but any animal fat or even butter will do. You can blend this in with the paste.
- Fry off a little and taste test for seasoning, then adjust as required.
- Toast the cardamom, cloves, and cumin seeds in a medium-hot pan. Toast them all just enough that you start to smell the beautiful aroma lifting up from the pan.
- Crush the spices in a pestle and mortar.
- Add a teaspoon of coriander and a half teaspoon of ginger, then set aside.
- Peel and chop the potatoes, then set aside. You want fairly large chunks to give a bite to the dish.
- Finely dice the onions and set aside.
- Finely chop a handful of peanuts and lightly fry in a pan on medium heat.
- Add the whole can of coconut milk and reduce by half, then add 1 ¼ cups chicken stock and leave to reduce again.
- Once it’s reduced all the way, blend the mixture until it’s as smooth and creamy as possible.
- Heat a large saucepan to fairly high heat and oil, then add and sear the outside of the meatballs. Set them aside and reduce the heat to medium.
- Add a good dollop of butter and bring it to temperature, then add the onions and caramelise them for 6 or so minutes, seasoning as you go.
- Add the tempered spices and allow them a couple of minutes to cook through in the onions and butter.
- Add the rest of your curry paste and allow a further couple of minutes.
- Finally, add the potatoes, the chicken meatballs, and the reduction of coconut milk, stock, and peanuts, then set to simmer until the potatoes and chicken are cooked through. The chicken should get there first, but it’s always worth checking before you serve.
- As it cooks, taste and test your seasoning, adjusting as necessary. Add sugar to taste, and if required, add more salt.
- If possible, allow the meal to sit overnight to further develop the flavours within. It will still be perfectly tasty if you serve it immediately, however.
- Serve with whatever sides you feel appropriate, whether rice, flatbreads, or otherwise.
- Garnish with something crispy and something fresh, perhaps more peanuts and some coriander.
- Finally, squeeze over half a lime to help balance out the sweetness.
Notes
Nutrition
FAQ
Can I use store-bought Massaman curry paste instead of making it from scratch?
Yes, and it works well. Use about 3–4 tablespoons of a good-quality store-bought paste in place of homemade. Brands vary in saltiness and heat, so taste before adding fish sauce and adjust from there.
Can I use ground turkey instead of ground chicken?
Ground turkey works as a direct swap. It has a slightly firmer texture than chicken once cooked, which actually helps the meatballs hold their shape. The same internal temperature rule applies — cook to 165°F (74°C).
My grocery store doesn’t carry kaffir lime leaves. What should I do?
Check the freezer section of an Asian grocery store — frozen leaves are widely available and nearly as good as fresh. If you genuinely can’t find them, use a small amount of lime zest in the meatball mix and a strip of fresh lime peel simmered in the sauce, then removed before serving.
How spicy is this curry?
Massaman is one of the milder Thai curries — the heat is gentle and sits in the background rather than upfront. If you want more heat, add a sliced fresh red chili to the sauce while it simmers.
Can I make the meatballs ahead of time?
Yes. Shape and brown them up to a day ahead, then refrigerate. Add them directly to the simmering sauce from cold — just allow an extra few minutes of cooking time and confirm they reach 165°F (74°C) at the center.
What’s the best way to serve this — over rice or with something else?
Jasmine rice is the straightforward choice and soaks up the sauce well. Roti or flatbread also works if you want something to scoop with. The potatoes already in the curry mean it’s filling enough without a heavy side.
Try these next
- Quick Lamb Coconut Rendang
- Fragrant Lamb Coconut Stew
- Lamb Pumpkin Curry Delight
- Lamb Spinach Curry Delight








