Sri Lankan Meatball Curry

6 servings


55 minutes

active time

1 hour 45 minutes

total time


  • 900 g ground chicken (7 - 10% fat content. You can use any ground meat to make these meatballs)

  • 4 - 5 garlic cloves (finely minced)

  • 1 inch piece of ginger (finely minced)

  • 2 tsp Sri Lankan curry powder (roasted or unroasted is fine)

  • 3 - 4 cilantro roots (or stems from 3 cilantro plants, finely chopped)

  • 45 g lard (or vegetable oil, only if using lean meat)

  • 2 tsp cornstarch

  • 1 tsp salt

  • Oil (to cook the meatballs)

  • 3 cloves garlic (finely chopped)

  • ½ medium onion (finely chopped)

  • 1 inch piece of ginger (finely chopped)

  • 2 red or green chili (long chili or serrano)

  • 8 - 10 curry leaves (optional, you can also use 2 - 3 bay leaves instead)

  • 1 tbsp Sri Lankan curry powder

  • 1 tsp Kashmiri chili or cayenne pepper (please adjust the level to your taste)

  • 1 ½ tsp ground coriander

  • ¾ cup coconut milk (preferably full fat coconut milk, about ½ can)

  • 1 tsp sugar

  • 2 - 3 tsp lime juice (juice from 1 lime, to taste)

  • Salt to taste

  • 1 - 1.5 cups water

  • Cilantro to top (optional)


💗Chicken meatballs:

  1. Place all the ingredients in a large bowl. Make sure to add the fat (lard or vegetable oil) if you’re using lean meat.

  2. Feel free to substitute the chicken with any other ground meat.

  3. Use a spatula or a spoon to mix the meat mixture. Take care to mix it all in one direction, to make the mixture sticky.

  4. When mixed properly, the ground meat will become sticky (almost like dumpling filling). This will ensure you have nicely formed meatballs that will be juicy and not crumble when cooked.

  5. To form the meat into meatballs, have a bowl of cold tap water close by so you can wet your hands and utensils which will prevent the meat from sticking to them.

  6. Use a cookie scoop or spoon to portion the meat mixture. I use a 2 tbsp cookie scoop. Take each portion and gently form it into a smooth ball by rolling it in your hands. Make sure your hands are wet, so that the meat doesn't stick. You should be able to get about 30 meatballs.

  7. Let the meatballs sit for at least 30 minutes to marinate. This is optional, but I like to marinate them if I have time. You can also let them marinate BEFORE rolling them into balls.

To cook the meatballs on the stove

  1. Heat a large nonstick pan over medium to medium-high heat. Heat about 2 tbsp of oil as well.

  2. When the oil is hot, place the meatballs in the pan, at least 1.5 inches apart. DO NOT overcrowd the pan, since this will lead to “boiled” meatballs and not caramelize them properly.

  3. Cook the meatballs for about 4 - 5 minutes on one side until the meat caramelizes into a golden brown color. Flip and cook the meatballs for a further 4 - 5 minutes to caramelize the other side.

  4. The meatballs should ideally have a nice caramelized crust on 2 - 3 sides.

  5. Transfer the cooked meatballs onto a plate and repeat until all the meatballs are cooked. Let them rest.

To cook the meatballs in the oven

  1. Preheat the oven to 205°C (conventional oven).

  2. Line a baking tray (half sheet pan) with parchment paper or nonstick foil.

  3. Place the meatballs on the lined baking sheet, separated by at least 1.5 inches.

  4. When the oven is preheated, bake the meatballs in the oven for about 15 - 20 minutes, flipping them once halfway through baking time. The meatballs should ideally have some caramelization and color on them.

  5. Transfer the cooked meatballs onto a plate and let them rest.

💗Making the curry base + meatball curry:

  1. In a large pot, braiser / deep skillet, or casserole skillet (stovetop safe), heat 2 tbsp of oil over medium heat.

  2. When the oil is heated, add the finely chopped garlic, ginger, onion and chili. Sauté until the onions start to get some color on them.

  3. Add the curry leaves, curry powder, chili powder, and ground coriander. Sauté for about 30 - 60 seconds until you start to smell the spices. DO NOT let the spices burn!

  4. Add the coconut milk (for a thicker curry that is not creamy), or ¾ cup of water (for a creamy curry, as the coconut milk will be added later at the end).

  5. Stir to mix and bring to a simmer. Add the meatballs, sugar, and a generous pinch of salt to the curry base. Stir and simmer the meatballs in the curry base for about 15 - 20 minutes, uncovered.

  6. Stir frequently, and top with water if the liquid starts to evaporate.

  7. Taste and add more salt if needed.

  8. During the last 5 minutes, add just a little water to make thick gravy (if needed).

  9. For the creamy curry - During the last 5 minutes of cooking, add the coconut milk (if you used water before). Bring to a boil and let it simmer for about 3 - 4 minutes.

  10. After simmering, add a little lime juice and taste to make sure the flavors are balanced.

  11. Remove from the heat.

  12. Sprinkle some fresh cilantro on top before serving warm with rice or roti.


Serving Size

5 meatballs + gravy


298 kcal

Total Fat

19 g

Saturated Fat

9 g

Unsaturated Fat

8 g

Trans Fat

0.1 g


129 mg


100 mg

Total Carbohydrate

7 g

Dietary Fiber

2 g

Total Sugars

1 g


28 g

6 servings


55 minutes

active time

1 hour 45 minutes

total time
Start Cooking