Butter Chicken Meatballs
These butter chicken meatballs are everything you love about butter chicken but in meatball form. Juicy chicken meatballs simmered in a rich, creamy, warmly spiced butter chicken sauce and served over rice with naan for scooping.

Ingredients and Substitutions
For the Meatballs
- Ground chicken / chicken mince. The base of the meatballs. Ground turkey works as a substitute with a very similar result.
- White bread and milk. Called a “panade”, this mixture ensures the softest, juiciest chicken meatballs.
- Garlic powder. For savory depth throughout the meatball.
- Salt and pepper. Season the mixture generously. Under-seasoned meatballs taste bland even in a flavorful sauce.
For the Butter Chicken Sauce
- Onion.Â
- Garlic and fresh ginger.Â
- Garam masala. The primary spice blend. It provides the warm, complex, aromatic quality that defines butter chicken.
- Ground cumin, cardamom and turmeric.
- Chili powder or cayenne (optional). For heat. Butter chicken is traditionally mild and warming rather than spicy. Add a pinch if you want a gentle kick or leave it out entirely for a family-friendly version.
- Canned tomatoes. Crushed or chopped. These form the body of the sauce alongside the cream.
- Heavy cream. This is what makes butter chicken sauce butter chicken sauce. The cream transforms the spiced tomato base into something velvety, rich and luxurious. Don’t substitute with milk here. The sauce needs the fat content of cream to achieve its characteristic richness. You could also add a tablespoon of butter stirred into the sauce but the cream adds enough richness here.
- Sugar. A pinch to balance the acidity of the tomatoes. Not enough to taste sweet, just enough to round everything out.
- Salt.
- Fresh cilantro. For garnish. A handful of torn cilantro over the finished dish adds brightness and color.

How to Make Butter Chicken Meatballs
The Meatballs
Step 1: Mix. Add the crustless white bread to a large mixing bowl and pour over the milk. Allow to soak for 10 minutes then mash with a fork until a smooth paste forms. Add the seasonings to the bread mixture and mix well. Add the ground chicken and mix together until just combined. Don’t overwork the mixture or the meatballs will be dense and tough.
Step 2: Roll. With damp hands, form the mixture into golf-ball-sized meatballs. Damp hands prevent sticking and give you a smoother surface.
StStep 3: Brown. Heat a splash of olive oil in a large deep pan over medium-high heat. Add the meatballs and brown on all sides until golden, turning occasionally. They don’t need to be cooked through at this stage, just well-browned on the surface. The browning is where the flavor develops. Remove and set aside.
The Sauce (Same Pan)
Step 4: Cook the aromatics. Reduce heat to medium. Add a tablespoon of butter or oil to the same pan with all those browned bits on the bottom. Once melted, add the diced onion and cook until soft and lightly golden, about 5 minutes. Add the garlic and ginger and cook for 1 minute until fragrant.
Step 5: Toast the spices. Add the spices. Stir and cook for 30 seconds until fragrant and coating the onions.
Step 6: Build the sauce. Pour in the canned tomatoes and stir, scraping up any browned bits from the bottom of the pan. This fond from the meatballs is packed with flavor and becomes part of the sauce. Simmer for 10 to 15 minutes until the sauce has thickened and the raw tomato taste has cooked out. Add the sugar and season with salt.
Step 7: Add the cream. Reduce heat to low and stir in the heavy cream. The sauce will lighten to a warm orange. Simmer gently for 2 to 3 minutes.
Step 8: Return the meatballs. Nestle the browned meatballs back into the sauce. Spoon the sauce over the tops so they’re partially submerged. Simmer gently for 10 to 15 minutes until the meatballs are cooked through and have absorbed some of the sauce.
Step 9: Serve. Scatter with fresh cilantro. Serve over basmati rice with warm naan bread for scooping up the sauce.
How to Store
- Fridge. Store the meatballs in the sauce in an airtight container for up to 3 to 4 days. Reheat gently on the stove over medium-low heat. Add a splash of cream or water if the sauce has thickened.
- Freezer. The meatballs in sauce freeze well for up to 3 months. Cool completely, transfer to containers and freeze. Defrost overnight in the fridge and reheat gently on the stove. The sauce may look slightly separated after thawing. A good stir and gentle heat will bring it back together. Cook fresh rice when serving.
- The meatballs can be frozen separately. Bake, flash freeze on a tray, transfer to a bag. Drop frozen meatballs straight into the simmering butter chicken sauce for 15 to 20 minutes. This means you can make the meatballs in bulk as part of a Freezer Series session and use them in butter chicken sauce, tomato sauce, teriyaki glaze or any other sauce whenever you want.

Serving Suggestions
- Basmati rice. The classic pairing. Fluffy, fragrant and perfect for absorbing the sauce. My curry rice would also be delicious here.
- Naan. Warm naan for tearing and scooping through the sauce. Essential.
- Roti or chapati. A lighter bread option.
- Cucumber raita. Cool, tangy yogurt with cucumber, mint and a pinch of cumin. The coolness contrasts the warm, rich sauce beautifully.
- A simple salad. Something fresh and acidic to cut through the richness.

Ingredients
For the meatballs
- 2 lb (1kg) ground chicken / chicken mince
- 4 slices white bread crusts removed
- 8 tbsp milk
- 2 tsp garlic powder
- 2 tsp salt
- 1 tsp white pepper
For the butter chicken curry
- 1 tbsp butter/ghee
- 1 onions chopped
- 6 garlic cloves
- Thumb size piece ginger grated
- 24 oz (700ml) tomato passata / puree
- 1 cup cream
- 2 tsp sugar
- salt and black pepper to taste
Instructions
- Tear the bread into small pieces then add to a large mixing bowl. Pour over the milk and allow to soak for 10 minutes.
- Add the garlic powder, white pepper and salt and mix well, making sure to break up any chunks of the bread.
- Add the chicken and mix until just combined, taking care not to over-mix. With wet hands, form the mixture into meatballs.
- In a large, deep pan or skillet set over medium-high heat, add ghee or oil of your choice.
- Add the meatballs (in batches if necessary) and cook until browned all over. The meatballs don't have to be fully cooked through here. Remove and set aside.
- Add onions and cook until soft and golden.
- Add the garlic, ginger and spices and cook for 30 seconds then add the chicken and marinade.
- Pour in the tomatoes then reduce the heat, partially cover and allow to simmer for 10 minutes then pour in the cream.
- Add the meatballs back in and cook for 10-15 minutes until fully cooked.
- Season to taste.
- Serve with your choice of side dishes.
