This post contains affiliate links. When you purchase through our links, we may earn a commission.

This Indian-inspired kofta curry aka meatballs in curry sauce need nothing else but plain basmati rice and a big spoon! Tender and moist and packed with incredible flavour, these are meatballs taken to the next level!

Serve this flavour packed meal with our simple and easy flatbread

meatball curry topped with fresh cilantro in a white enamel pan
Would you like to save this recipe?
We’ll email this recipe to you, so you can come back to it later!
Please enable JavaScript in your browser to complete this form.

I’ve always been a firm believer that food should be fun, easy (most of the time), and off the scale flavourful. These meatballs in curry sauce combine all three!

I make curries often, and usually with chicken breasts or chickpeas and butternut squash. This time I wanted to change things up. 

Kofta Curry Recipe

Fun fact. Meatballs are called “kofta” in India, and they are shaped more like mini sausages than our meatballs.

The recipe I am sharing today was adapted from one of my favourite writers, the very inspirational Madhur Jaffrey. I did take some liberties with the original, and I might’ve inadvertently combined two different regions of India in one recipe. 

When my creative juices start flowing, I get carried away.  It’s okay, we love unity, right?!

meatballs in sauce topped with cilantro leaves

What is pretty special about this recipe are the meatballs themselves. They are spiced with an array of warm Indian spices like cumin, coriander, cloves, ginger, cinnamon etc. Flavour galore.

I am talking flavour here, not heat. That’s the curry’s job!

The sauce is all about the thoughtful spices and BOLD flavour notes. I also finished it off with just a splash of single cream to tame the heat just a little.

I also added in a bunch of chopped kale for some extra nutrition and colour! Feel free to use spinach, peas, green beans…anything you like!

Indian Kofta Curry process images

Recipe Tips and Notes

  • If you getting nervous here about your ability to pull off a real Indian taste, don’t be. I will teach you how to cheat! I use Patak’s curry pastes in most of my curries. It’s my favourite brand and no, I am not working for them. However, if you can’t find it or have another brand you love, go for it. Using a paste means you don’t have to keep a wide array of spices at hand when get the urge to make a curry.
  • For this recipe I used Madras Spice Paste, which is quite hot.  So if you are not a fan of spicy food, I would recommend finding a mild curry like Tikka Masala. For an easy homemade curry recipe, take a look at my Simplified Cauliflower and Potato Curry
  • I used ground pork for my version of the kofta curry as it is readily available but using ground lamb would be more authentic. To ensure your meatballs are as flavourful as they should be, check that your spices are up to date! 
  • If you prefer to keep this curry dairy free, substitute cream with coconut cream. Delicious!
meatballs in a blue bowl and a hand dipping flatbread into the curry sauce

Serving suggestions

As I mentioned earlier, this kofta curry is perfect with plain basmati rice or cauliflower rice if you want to keep it low carb. Naan or any flatbread will be also delicious. 

I personally love making this Nepalese Red Lentil Dhal or my Perfectly Spiced Baby Potatoes (Aloo Chat) and serve it alongside the meatballs. 

Storage and leftovers

As good as a curry is when fresh from the stove, it might be even better the next day. The extra time gives flavours the chance to meld and intensify, making the whole thing even more of a delight.

Store leftovers in an This is an affiliate link.airtight container for up to 3 days. You can either reheat gently on the stovetop or in the oven at 160C/320F for 15 minutes covered with a lid or foil. 

Due to the cream in this meatball curry, I wouldn’t freeze it. Dishes made with dairy products have the tendency to become grainy and water after thawing, which alters the texture of the dish. 

Favourite Indian Curries to Try

4.69 from 32 votes

Indian Spiced Meatballs in Curry Sauce

Prep: 15 minutes
Cook: 40 minutes
Total: 55 minutes
Servings: 6 -8
This Indian-inspired kofta curry aka meatballs in curry sauce need nothing else but plain basmati rice and a big spoon!
Save this recipe!
Get this sent to your inbox, plus get new recipes from us every week!
Please enable JavaScript in your browser to complete this form.

Ingredients 

For the meatballs

  • 1kg/2 lbs lean ground pork, or lamb
  • 1 tbsp fresh ginger, peeled and grated or 1 tsp dried ginger
  • 1 tbsp cumin
  • 1 tbsp coriander
  • 1/4 tsp ground cloves
  • 1/4 tsp ground cinnamon
  • 1/8 tsp This is an affiliate link.nutmeg
  • 1/4 tsp black pepper
  • 1/4 tsp cayenne pepper
  • 1 tsp salt
  • 2 tbsp plain yogurt
  • 1 tbsp vegetable oil

For the curry sauce

  • 1 large onion, chopped
  • 3 garlic cloves, minced
  • 1 tbsp fresh ginger, peeled and grated
  • 2 tbsp cilantro stalks, chopped
  • 3 tbsp Indian curry paste, not sauce
  • 400g/14 oz This is an affiliate link.canned chopped tomatoes
  • 250ml/ 1 cup water
  • 10g/1 cup black kale/cavolo nero or spinach, chopped
  • 125ml/1/2 cup light cream/single cream, or coconut milk
  • 1 tsp This is an affiliate link.garam masala, optional
  • 2 tbsp cilantro leaves, chopped

Instructions 

  • In a large bowl combine pork, ginger, cumin, coriander, cloves, cinnamon, nutmeg, black pepper, cayenne pepper, salt and plain yogurt.
  • Roll into golf ball-sized meatballs and brown in 1 tbsp of vegetable oil until golden but not cooked all the way through. Remove to a plate and set aside.
  • Discard excessive fat but leave approximately 1 tbsp in the pan. Add onions, garlic, ginger and chopped cilantro stalks and cook over low heat without browning for 10 minutes, stirring occasionally.
  • Add curry paste and stir for a minute, then add canned tomatoes and water, stir to combine, return the meatballs to the pan, and spoon some curry sauce on them to coat them, then turn the heat up and bring to a boil, then turn the heat to low, cover with a lid and simmer for 20 minutes.
  • Add chopped kale and any other vegetables if using and cook uncovered for 10 minutes longer, stirring once in a while to avoid burning. In the last few minutes add light cream and taste for salt, add more if necessary. (I add no salt to this sauce as Patak’s curry pastes are quite salty already!)
  • Sprinkle with garam masala and chopped cilantro leaves. Serve with basmati rice, naan and/or lentil dhal for a low carb version.

Nutrition

Calories: 522kcal | Carbohydrates: 8g | Protein: 28g | Fat: 42g | Saturated Fat: 18g | Cholesterol: 133mg | Sodium: 585mg | Potassium: 679mg | Fiber: 2g | Sugar: 3g | Vitamin A: 1740IU | Vitamin C: 14mg | Calcium: 102mg | Iron: 3mg

Nutrition information is automatically calculated, so should only be used as an approximation.

Tried this recipe?Let us know how it was!
Julia from Vikalinka

About Me

Julia Frey is a London based recipe developer and photographer. Julia founded Vikalinka in 2012 with the main mission to provide her readers with delicious and accessible everyday recipes, which could be enjoyed by everyone.

Leave a comment

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

Recipe Rating




84 Comments

  1. Manisha says:

    5 stars
    Made this for dinner tonight and it was a hit with everyone in my family. Thanks so much for sharing the recipe!

    1. Julia Frey (Vikalinka) says:

      My pleasure, Manisha, so pleased you enjoyed it!

  2. Paul Campbell says:

    Hi

    I donโ€™t use shop bought pastes or sauces as I donโ€™t like all the preservatives etc. What are your thoughts on ร  substitute made fresh?

    Aside from that it sounds a really lovely recipe and Iโ€™d go for the minced lamb. Looking forward to trying it

    1. Julia Frey (Vikalinka) says:

      Hi Paul, you are definitely more than welcome to make your own curry from scratch or use this recipe as a guide.

  3. Bev says:

    5 stars
    Made these 29/07/2022 not sure why one person said the recipe was rubbish and watery as this was not the case with mine in fact it turned out delicious I followed the instructions to the t the only thing I didnโ€™t do was put any cream inn as I thought it tasted nice enough so why alter it but thatโ€™s my preference I didnโ€™t cook the meatballs straight away once I mixed all the ingredients I let them stand so all the spices and meat have chance to infuse themselves together. I also did the same when added the meatballs to the sauce cooked as instructions and then turned the heat off and again left the dish to stand for half hour again this is my preference. Served with basmati rice and flat bread with garlic butter on my son really enjoyed it too. Thank you for sharing this recipe I will definitely be adding to my favourites list and making it on a regular basis ๐Ÿ˜Š๐Ÿ˜Š๐Ÿ˜Š๐Ÿ˜Š

    1. Julia Frey (Vikalinka) says:

      Thank you so much for your feedback, Bev. It’s greatly appreciated.

  4. Orla Curran says:

    Rubbish recipe, wayyy to watery. Either two much water or not lobg enough to cook down. Colour was terrible. Much better just using another curry recipe but with koftas instead of meat.

  5. Janice says:

    5 stars
    I try a new recipe every Sunday night and this was the one I chose for last night and it was incredible! I followed the recipe exactly, used ground lamb & Pataks garam masala paste. The flavors of the meatballs & curry were so yummy. Served with bamati rice. Can’t wait to have it for dinner again tonight. Thank you, Julia for another great recipe!!

    1. Julia Frey (Vikalinka) says:

      Thrilled with this outcome, Janice! Thank you so much for your comment.

  6. Heather says:

    5 stars
    We made these meatballs to pair with a tomato chutney we bought from a local Indian food vendor. Even without the curry sauce, the meatballs are heavenly. Next time, weโ€™ll make the curry sauce ๐Ÿ™‚

    1. Julia Frey (Vikalinka) says:

      What a great idea to serve these with a chutney! Thrilled to hear you enjoyed the meatballs!