This post may contain affiliate links.
Full-flavored Curry Meatballs made with ground chicken, spinach and lots of aromatics. The pan-fried meatballs get finished with the creamiest and dreamiest coconut curry—you’ll want to drizzle this on everything. Inspired by traditional Indian Kofta Curry, this comforting dinner will surprise you with its depth of flavor and nuance.
Inspired by Indian Meatball Curry
This recipe is largely inspired by the classic Indian Meatball Curry dish known as Kofta Curry. I adapted some of the traditional methods and ingredients to create a recipe feasible and approachable for weeknight dinners.
What is “kofta?” In India, Kofta means “meatball.” Generally speaking, India kofta are generally “anda” in shape or egg-shaped. I prefer to use a #40 scoop to portion the meat and drop the balls right into the pan. I don’t even bother rolling them.
Traditionally, meatball curry uses either ground chicken, ground beef or ground lamb. I like ground chicken here, but feel free to use beef or lamb.

Ground Spices vs Whole
Most classic Indian curries use whole spices. Though I found even high-powered blenders couldn’t purée the sauce smooth enough and left little bits of cinnamon stick swimming around the curry.
Because of that, I opted for ground spices (cardamom, cinnamon, cloves, and turmeric) which results in an equally delicious dish and is more feasible for a weeknight dinner.
Adding Coconut
Many curries blend in desiccated coconut for flavor and body before finishing the sauce with whole milk yogurt. I found canned coconut milk hit two birds with one stone and made for a deliciously creamy sauce.

Let’s Walk Through the Process
- Heat oil in a sauté pan or skillet, then add the spices and cook until fragrant.
- Add the onions to the spiced oil and cook until softened. Add the ginger, garlic and serrano and cook briefly.

- Add the tomato and cook until starting to soften.

- Add half of the cilantro and turmeric then deglaze with vinegar.

- Transfer curry mixture to a blender and blend until smooth.
- Mix some of the curry paste with the ground chicken, spinach and cilantro. Form the chicken mixture into meatballs (kofta). Add the chicken meatballs to the pan with oil and cook until golden brown.
TIP: I recommend using 93% lean ground chicken—if you can find it. If you can’t 99% lean ground chicken will also work.

- Add the coconut milk to the remaining curry paste and blend until smooth.
TIP: use full-fat canned coconut milk. If you’d prefer a lighter sauce, use 1 cup whole milk yogurt instead (it will add protein and less fat).

- Add the curry to the pan with meatballs and simmer until meatballs are cooked through.

Tools and Equipment You'll Need
What to Serve with It
Traditionally, Meatball Curry is served with jeera rice, phulka (roti), or naan. Cilantro Lime Brown Rice with fresh slices of cucumber is also a great pairing.
I also like to serve Indian meatballs with a bright and sweet grape salad.

Tips from Recipe Testing
- The curry paste can be made ahead of time. Store the homemade curry paste in an airtight container in the refrigerator for up to 3 days. Or, freeze the curry for up to 3 months.
- If you aren’t a fan of cilantro, you can use a combination of fresh mint and parsley.
- Since the spinach is mixed into the meatballs, it’s important to finely chop it so the meatballs stay intact.

Coconut Curry Meatballs with Ground Chicken and Spinach
Description
Video
Save This Recipe!
Ingredients
- 2 tablespoons coconut or vegetable oil divided
- 1 teaspoon dried ground turmeric
- ½ teaspoon ground cardamom
- ½ teaspoon ground cinnamon
- ½ teaspoon ground cloves
- 1 medium yellow or white onion, chopped
- Kosher salt
- 1 tablespoon chopped garlic
- 1 tablespoon chopped ginger
- 1 serrano, chopped
- 1 large tomato (or two roma tomatoes), cut into chunks
- 1 cup chopped cilantro leaves and tender stems, divided + more for serving
- 1 tablespoon white vinegar
- 1 pound ground chicken
- 2 cups chopped spinach
- 1 (14.5-ounce) can coconut milk or 1 cup plain whole milk yogurt
- Rice, jeera rice, naan, or roti for serving
Instructions
- Heat 1 tablespoon oil in a large sauté pan over medium.
- Add 1 teaspoon turmeric, ½ teaspoon cardamom, ½ teaspoon cinnamon and ½ teaspoon cloves; cook 30 seconds. Add 1 chopped onion and 1 teaspoon kosher salt and cook, stirring frequently, until starting to soften, 4 minutes.
- Add 1 tablespoon garlic, 1 tablespoon ginger, and 1 chopped serrano; cook 2 minutes.
- Stir in 1 diced tomato and cook 1 minute.
- Add ½ cup cilantro and cook 3 minutes; deglaze with 1 tablespoon vinegar, scraping up any browned bits. Cook until evaporated then remove from heat.
- Transfer mixture to a blender and blend until a smooth curry paste is formed.
- Add 3 tablespoons curry paste to a large bowl with ground 1 pound chicken, 2 cups chopped spinach, remaining ½ cup cilantro and ¼ teaspoon salt. Form into 24 meatballs using a #40 scoop or about 1 ½ tablespoons meat mixture per meatball.
- Heat remaining 1 tablespoon oil in now-empty sauté pan over medium. Add meatballs in an even layer and cook until browned on all sides, about 10 minutes (you may need to do this in batches to avoid crowding the pan).
- Meanwhile, add 1 can coconut milk (or 1 cup yogurt) to blender with remaining curry paste and blend until smooth.
- Add curry sauce to pan with meatballs, bring to a low simmer and cook until meatballs are cooked through, 5–8 minutes.
- Season with salt to taste. Serve with cooked brown rice, jeera rice, phulka (roti), or naan and fresh cilantro.
Notes
For longer storage, you can freeze the meatballs for up to 3 months. Thaw overnight in the refrigerator before reheating gently on the stovetop. Substitutions: ghee can be used in place of coconut oil. Whole milk yogurt can be used in place of coconut milk.
If you aren’t a fan of cilantro, you can use a combination of fresh mint and parsley.
Ground pork, beef or turkey will all work here. Make Ahead: The curry paste can absolutely be made ahead. Store the homemade curry paste in an airtight container in the refrigerator for up to 3 days. Or, freeze the curry for up to 3 months. Since the spinach is mixed into the meatballs, it’s important to finely chop the spinach.
Nutrition
More Curry Recipes to Try
Appetizers
Coconut Green Curry Mussels
Fish & Seafood
Creamy Coconut Shrimp Curry with Green Beans
Fish & Seafood
One-Pan Green Curry Salmon
Soups, Stews & Chilis










