Veal and Pork Meatball Green Curry

Veal and Pork Meatball Green Curry

This Thai-inspired green curry features tender veal and pork meatballs simmered in a rich coconut sauce with fresh vegetables. The key is 'cracking' the coconut cream to release its oils before blooming the curry paste—a traditional technique that creates deep, authentic flavor. Total time is about 75 minutes and serves 4-6 people.

Quick Info

Prep Time
20 min
Active Time
35 min
Total Time
1 hr 15 min
Difficulty
Medium
Serves
4-6
Cost Level
$$
Make-Ahead
Partially

What Makes This Curry Taste Like Restaurant Quality?

Traditional Thai technique teaches that coconut cream must 'crack' before you add the curry paste. When you reduce the cream over heat, the oil separates and pools at the edges. This oil becomes the cooking fat that blooms the aromatics in the paste and creates that deep, complex flavor you get at good Thai restaurants.

Professional chefs know that the 50/50 veal-pork blend creates a luxurious texture that's richer than all-beef meatballs. The veal adds delicate flavor while the pork provides fat that keeps everything moist. Browning them first builds a flavorful crust and renders some of that fat into the curry base.

Food science shows that balancing sweet, salty, sour, and spicy is what makes Thai food so craveable. The palm sugar rounds out the heat from the curry paste, fish sauce adds umami depth, and fresh lime juice at the end brightens everything. Each element plays a specific role in creating that addictive flavor.

Ingredients

Recipe yields 4-6 servings

For the Meatballs

500 g (about 1 lb) Veal and pork mix (50/50)
ground
50 g (1 large) Egg
beaten
30 g (1/4 cup) Crispy fried onions
store-bought
15 g (1 tablespoon) Fish sauce
for meatballs
5 g (1 teaspoon) Chili powder
for meatballs
5 g (1 teaspoon) Salt
for meatballs

For the Curry

400 g (1 2/3 cups) Coconut cream
divided
50 g (3 tablespoons) Green curry paste
store-bought
300 g (1 1/4 cups) Chicken stock
homemade preferred
30 g (2 tablespoons) Lime juice
freshly squeezed
20 g (1 tablespoon) Fish sauce
for curry
15 g (1 tablespoon) Palm sugar
or brown sugar
5 g (4-5 leaves) Kaffir lime leaves
fresh or frozen
20 g (1/4 cup) Thai basil
fresh leaves
15 g (1 tablespoon) Vegetable oil
for frying

For the Vegetables

200 g (about 1 cup) Thai eggplant
quartered
150 g (3/4 cup) Bamboo shoots
sliced
150 g (1 medium) Red bell pepper
sliced
150 g (1 cup) Green beans
trimmed

Instructions

Prepare the Meatballs

  1. 1

    Mix the Meatball Ingredients

    In a large bowl, combine the ground veal and pork with beaten egg, crispy fried onions, fish sauce, chili powder, and salt. Mix gently with your hands until just combined—overworking the meat develops too much protein structure and makes the meatballs tough and dense instead of tender.

  2. 2

    Form and Chill the Meatballs

    Roll the mixture into meatballs about 3 cm (just over 1 inch) across—roughly the size of a golf ball. Place them on a plate and refrigerate for 30 minutes. This chilling time firms up the fat and helps the meatballs hold their shape when you brown them, preventing them from falling apart in the pan.

  3. 3

    Brown the Meatballs

    Heat the vegetable oil in a heavy pot over medium-high heat until it shimmers. Working in batches to avoid crowding, brown the meatballs on all sides until golden—about 6-8 minutes total. This creates a flavorful crust through caramelization and renders some of the fat that will enrich your curry sauce. Remove and set aside on a plate.

Build the Curry Base

  1. 4

    Crack the Coconut Cream

    Pour 100 ml (about 1/3 cup) of the coconut cream into the same pot you used for the meatballs. Cook over medium heat, stirring occasionally, until the oil separates and pools around the edges—about 5-7 minutes. You'll see the cream go from white to slightly golden with clear oil visible. This 'cracking' is essential for authentic Thai curry because the separated oil becomes the cooking fat that blooms the aromatics.

  2. 5

    Bloom the Curry Paste

    Add the green curry paste to the separated coconut oil and fry for 2-3 minutes, stirring constantly, until it smells incredibly fragrant and the color deepens. The high heat releases the essential oils from all the aromatics in the paste—lemongrass, galangal, chilies—and this step is what separates restaurant-quality curry from watery, bland versions.

  3. 6

    Add Liquids and Seasonings

    Pour in the remaining coconut cream and chicken stock, stirring to combine everything smoothly. Bring to a gentle simmer—you'll see small bubbles breaking the surface but not a rolling boil. Stir in the palm sugar and fish sauce. The palm sugar balances the heat with sweetness while the fish sauce adds that savory umami depth that makes Thai food so addictive.

Finish the Curry

  1. 7

    Simmer the Meatballs

    Return the browned meatballs to the curry and reduce heat to medium-low. Simmer gently for 8-10 minutes until the meatballs are cooked through—they should reach an internal temperature of 160°F / 71°C for food safety. Avoid vigorous boiling which can toughen the meat and make the meatballs dry.

  2. 8

    Add Vegetables in Stages

    Add the vegetables based on how long they need to cook. Start with the Thai eggplant and bamboo shoots, simmering for 4 minutes. Then add the green beans and bell pepper, cooking for another 3-4 minutes. This staged approach ensures everything is perfectly tender without anything getting mushy or staying raw.

  3. 9

    Finish with Fresh Aromatics

    Remove from heat and stir in the lime juice, kaffir lime leaves (tear them to release more fragrance), and Thai basil leaves. These fresh aromatics brighten the rich curry and add complexity—the lime cuts through the coconut fat, the kaffir lime adds floral notes, and the basil brings a sweet anise flavor. Let it sit for 2 minutes so the flavors meld, then serve immediately.

Tips & Tricks

If your meatballs are dry: Add a panade next time—soak 50 g of bread in 60 ml of milk, squeeze out excess, and mix into the meat. This acts as a moisture reservoir during cooking and keeps the meatballs juicy even if they cook a bit longer.

If your curry paste is too spicy: Add more coconut cream (another 100 ml) and an extra teaspoon of palm sugar. The fat coats your tongue and reduces heat perception, while the sugar balances the spice. Don't add water—it dilutes flavor without fixing the heat.

If your coconut cream won't crack: Some brands contain emulsifiers that prevent separation. Look for coconut cream with just coconut and water on the label. If you're stuck with what you have, reduce it longer over medium heat—eventually you'll see oil pooling even with stabilizers present.

If you want to make this ahead: Make the curry sauce completely and refrigerate for up to 3 days—the flavors actually improve overnight. Form and brown the meatballs, then refrigerate separately. When ready to serve, reheat the sauce gently, add the meatballs, and simmer until heated through before adding vegetables.

Frequently Asked Questions

Can I make the meatballs ahead of time?

Yes! Form the meatballs up to 24 hours ahead and refrigerate them covered on a plate. You can also freeze them raw for up to 3 months—just arrange them on a baking sheet to freeze individually, then transfer to a freezer bag. Thaw completely in the fridge before cooking so they brown evenly and cook through at the same rate.

Why did my coconut cream not separate?

Some commercial coconut creams contain emulsifiers that prevent the oil from separating. Look for brands with just coconut and water in the ingredients—Thai Kitchen and Chaokoh are reliable options. If you're stuck with stabilized cream, reduce it longer over medium heat. Eventually you'll see some oil pooling around the edges even with emulsifiers present.

Can I use different vegetables?

Absolutely! Traditional Thai green curry uses whatever is fresh and seasonal. Zucchini, snow peas, baby corn, or even pineapple chunks work beautifully. Just adjust cooking times based on density—harder vegetables like carrots need longer, while delicate ones like bok choy need just a minute or two. The key is adding them in stages so everything finishes at the same time.

What if I don't have Thai basil?

Regular Italian basil works in a pinch, though it lacks the anise-like flavor of Thai basil. Use the same amount and add it at the very end. If you can find it, holy basil is even more traditional for green curry. Avoid dried basil—it doesn't have the fresh, bright quality that balances the rich coconut.

Can I use ground beef instead of veal and pork?

Yes, but the texture will be different. Ground beef has a firmer bite and less delicate flavor. If you go this route, choose 80/20 ground beef for enough fat to keep the meatballs moist. You could also do half ground beef and half ground pork to get closer to the original richness without buying veal.

How do I know when the meatballs are cooked through?

The safest way is using an instant-read thermometer—meatballs should reach 160°F / 71°C internally. If you don't have a thermometer, cut one open after 8 minutes of simmering. The center should be uniformly brown with no pink remaining, and the juices should run clear, not pink or red.

Why is my curry watery?

This usually happens when you skip the coconut cream reduction step or don't bloom the curry paste long enough. The paste needs those 2-3 minutes in hot oil to thicken and develop flavor. If your curry is already made and too thin, simmer it uncovered for 10-15 minutes to evaporate excess liquid and concentrate the flavors.

Can I make this with chicken instead of meatballs?

Definitely! Cut 500 g of boneless chicken thighs into bite-sized pieces and brown them just like the meatballs. They'll cook faster in the curry—about 5-6 minutes instead of 8-10. Thighs stay moister than breast meat and their richer flavor stands up better to the bold curry spices.