A full-flavored meatball curry featuring tender chicken and spinach meatballs and an ultra-creamy spiced curry. Inspired by traditional Indian Kofta Curry, this comforting dinner will will surprise you with it’s depth of flavor and nuance.

Why This Recipe Works 

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.

Traditionally, kofta curry uses either ground chicken, ground beef or ground lamb. This recipe uses ground chicken but feel free to use beef or lamb if you prefer. 

Additionally, most classic Indian curries use whole spices. Though I found even high-powered blenders couldn’t puree the sauce smooth enough and left little bits of cinnamon stick swimming around the curry. Because of that, I opted for ground spices which resulted in an equally as delicious dish without any undesirable bits. 

And finally, 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.

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 both rolling them.

spinach, cilantro, tomato, ground chicken, spices, serrano, garlic, ginger, and oil set out on a counter

Ingredients in Kofta Curry

  • Coconut oil: refined coconut oil is a flavorful high-heat cooking oil. extra-virgin coconut oil will also work, though it’s not a high-heat cooking oil. Because of that, you’ll need to keep an eye on the heat to avoid the oil from smoking.
  • Ground spices: cardamom, cinnamon, cloves, and turmeric add lots of spicy warmth! 
  • Onion: you’ll need half of a large onion for this recipe. White or yellow work equally as well here.
  • Aromatics: fresh garlic, ginger and  green chilli (serrano) are all used. Find fresh ginger next to the garlic and shallots or in the refrigerated area of the produce section.
  • Tomato: You’ll need a large fresh tomato or two fresh roma tomatoes. Tomato adds freshness, body and a bit of acidity. 
  • Cilantro: you can substitute half of the cilantro for mint if you like.
  • White vinegar: just a splash is needed to balance out the warm spices and savory flavors. 
  • Ground chicken: I struggle to find 93% lean ground chicken, so this recipe was developed using 99% lean ground chicken. I recommend using 93% if you can find it. 
  • Spinach: fresh spinach is packed into the chicken meatballs which keeps them light and tender. 
  • Coconut milk: 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). 
meatballs and a creamy curry sauce served over rice and topped with cilantro in a shallow white bowl

How to Make Kofta Curry

  1. Heat oil in a pan then add the spices and cook until fragrant.
  2. Add the onions to the spiced oil and cook until softened. 
  3. Add the ginger, garlic and serrano and cook briefly then add the tomato and cook until starting to soften. Add half of the cilantro and turmeric then deglaze with vinegar.
  4. Transfer curry mixture to a blender and blend until smooth. 
  5. Mix some of the curry paste with the ground chicken, spinach and cilantro. Form the chicken mixture into meatballs (kofta). Add the kofta to a pan with oil and cook until golden brown. 
  6. Add the coconut milk to the remaining curry paste and blend until smooth.
  7. Add the curry to the pan with meatballs and simmer until meatballs are cooked through.

How to Serve Kofta Curry

Traditionally, Meatball Curry is served with jeera rice, phulka (roti), or naan. Here are some of my favorite recipes for each:

meatballs and a creamy curry sauce served over rice and topped with cilantro in a shallow white bowl


Can the curry paste be made 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.

What can I use in place of cilantro?

You can use a combination of fresh mint and parsley.

Indian-Inspired Meatball Curry (Kofta Curry)

Print Recipe
5 from 1 vote
Prep Time 15 minutes
Cook Time 35 minutes
Total Time 50 minutes
Yield 24 meatballs (4 servings)
Category Main Dish
Cuisine Indian-Inspired
Author Lauren Grant


An easy and incredibly flavorful meatball curry dinner featuring tender chicken and spinach meatballs and a luscious creamy curry.


  • 2 tablespoon coconut or vegetable oil divided
  • ½ teaspoon ground cardamom
  • ½ teaspoon ground cinnamon
  • ½ teaspoon ground cloves
  • 1 cup chopped onion (½ large onion)
  • Kosher salt
  • 1 tablespoon chopped garlic
  • 1 tablespoon chopped ginger
  • 1 serrano, chopped
  • 1 large tomato, cut into chunks
  • 1 cup chopped cilantro leaves and tender stems, divided + more for serving
  • 1 teaspoon turmeric
  • 1 tablespoon white vinegar
  • 1 pound lean ground chicken
  • 2 cups chopped spinach
  • 1 can coconut milk or 1 cup plain whole milk yogurt
  • Rice jeera rice, naan, or roti for serving


  • Heat 1 tablespoon oil in a large sauté pan over medium.
  • Add cardamom, cinnamon and cloves; cook 30 seconds. Add onion and 1 teaspoon kosher salt and cook, stirring frequently, until starting to soften, 4 minutes.
    onions and spices cooking in a sauté pan
  • Add garlic, ginger, and serrano; cook 2 minutes.
  • Stir in tomato and cook 1 minute.
    onions, spices and tomatoes cooking in a sauté pan
  • Add ½ cup cilantro and turmeric and cook 3 minutes; deglaze with vinegar, scraping up any browned bits. Cook until evaporated then remove from heat.
    onions, spices and tomatoes cooking in a sauté pan
  • Transfer mixture to a blender and blend until smooth.
  • Add 3 tablespoons curry paste to a large bowl with ground chicken, 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 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.
    chicken and spinach meatballs cooking a sauté pan
  • Meanwhile, add coconut milk (or yogurt) to blender with remaining curry paste and blend until smooth.
    yellow curry sauce in a blender
  • Add curry sauce to pan, bring to a low simmer and cook until meatballs are cooked through, 5–8 minutes.
    meatballs in a curry sauce in a sauté pan
  • Season with salt to taste. Serve with cooked brown rice, jeera rice, phulka (roti), or naan and fresh cilantro.


  • As written, this recipe is dairy free.
  • Substitutions: ghee can be used in place of coconut oil. Whole milk yogurt can be used in place of coconut milk.


Serving: 4gCalories: 320kcalCarbohydrates: 8.5gProtein: 25.5gFat: 21gSaturated Fat: 15gSodium: 731mgFiber: 3gSugar: 4.5g
Keywords kofta curry, meatball curry
Did you make this recipe?Leave a comment below and tag @ZestfulKitchen on Instagram and hashtag it #zestfulkitchen!
a pan filled with meatballs and a curry sauce topped with cilantro

Pin This Recipe

Love this recipe and want to save it? Pin this recipe!

Pin This Recipe

Share it with the world


About The Author

Lauren Grant is a professional culinary food scientist, food writer, recipe developer, and food photographer. Lauren is a previous magazine editor and test kitchen developer and has had work published in major national publications including Diabetic Living Magazine, Midwest Living Magazine, Cuisine at Home Magazine, EatingWell.com, AmericasTestKitchen.com, and more.

Learn More

Leave a comment

Your email address will not be published. Required fields are marked *

How many stars would you give this recipe?