Sweet and Sour Meatballs
This is not your typical, overly sweet and sour meatballs recipe. Our fresh twist has juicy, tender chicken meatballs swimming in a perfectly balanced sauce. I honestly can’t get enough of these Asian-inspired meatballs. They have an amazing coconut sweet and sour sauce, which gets simmered down until it’s thick and shiny, perfect for coating the meatballs. They’re so good you’ll have a hard time not stealing them out of the pan. These are especially good served over rice (I love this coconut rice) and topped with plenty of that incredible sauce. You’ll use full-fat coconut milk and skim a bit of the thick coconut cream at the top of the can to add to the meatball mix itself. This is our secret for making the meatballs incredibly juicy and soft inside. The rest of the can turns into our creamy sauce, which simmers with a bit of broth, the brown sugar, and lime to get that perfect sweet and sour flavor profile. Key Ingredients Ground Chicken: Look for ground chicken with some fat (92/8 or close to it is perfect). Skip the leaner options. It’ll just give you tough, dry meatballs. I use the same trick for my classic meatballs, too! Ground pork or turkey are also excellent. Coconut Milk: You’ll want full-fat coconut milk for this recipe. When you’re at the store, give the can a flip and listen. You shouldn’t hear much sloshing liquid; that means you’ve got a good amount of thick coconut cream inside, which is precisely what we want! Once you get it home, don’t shake it. We need that separation of cream and milk. We’ll “steal” 2 tablespoons of that thick cream for the meatball mixture, and the rest of the can will make our sweet and sour sauce. Ginger, Garlic, and Lemongrass Paste: These are our aromatics (I love the combination). Fresh lemongrass can be a bit fussy to prep, so I usually go for the lemongrass paste in a tube (it’s also fantastic for our red curry paste). If you can’t find the paste, don’t worry, I’ve included instructions on how to prepare fresh lemongrass in the tips section below the recipe. Green Onion, Basil, Mint: We’ll add these fresh herbs to both the meatballs and the sauce at the end. It makes this dish taste super vibrant and fresh. I love Thai basil for this, but any variety will do! Brown Sugar: This is what brings the “sweet” to our sweet and sour sauce and balances the sour. Brown sugar works so nicely with the aromatics and fish sauce. If you prefer, coconut sugar would be a great substitute here, too. Lime and Rice Vinegar: These are the “sour” elements of our sauce! Use unsweetened rice wine vinegar and fresh lime (you’ll use both the zest and the juice for maximum sourness). Chinese 5 Spice: We add just a tiny bit (1/4 teaspoon) to the meatball mixture. I love it, but if you don’t want to buy a whole new spice jar for just a quarter teaspoon, you can use an equal amount of Garam Masala. Or, try ground allspice, but reduce it to 1/8 teaspoon instead. Fish Sauce: Oh, how I love fish sauce! As you might’ve seen in our Vietnamese Pho, sesame ginger shrimp marinade, or Thai chicken salad recipes, it adds an incredible salty, umami, and slightly funky flavor that nothing else can replicate. I always have Red Boat and Three Crabs in my pantry (both are excellent choices for this dish). Chicken Broth: Grab your favorite store-bought or homemade chicken broth. Vegetable broth works perfectly fine here, too. We only need a small amount to blend with the coconut milk and create our sauce. Ground Chicken: Look for ground chicken with some fat (92/8 or close to it is perfect). Skip the leaner options. It’ll just give you tough, dry meatballs. I use the same trick for my classic meatballs, too! Ground pork or turkey are also excellent. Coconut Milk: You’ll want full-fat coconut milk for this recipe. When you’re at the store, give the can a flip and listen. You shouldn’t hear much sloshing liquid; that means you’ve got a good amount of thick coconut cream inside, which is precisely what we want! Once you get it home, don’t shake it. We need that separation of cream and milk. We’ll “steal” 2 tablespoons of that thick cream for the meatball mixture, and the rest of the can will make our sweet and sour sauce. Ginger, Garlic, and Lemongrass Paste: These are our aromatics (I love the combination). Fresh lemongrass can be a bit fussy to prep, so I usually go for the lemongrass paste in a tube (it’s also fantastic for our red curry paste). If you can’t find the paste, don’t worry, I’ve included instructions on how to prepare fresh lemongrass in the tips section below the recipe. Green Onion, Basil, Mint: We’ll add these fresh herbs to both the meatballs and the sauce at the end. It makes this dish taste super vibrant and fresh. I love Thai basil for this, but any variety will do! Brown Sugar: This is what brings the “sweet” to our sweet and sour sauce and balances the sour. Brown sugar works so nicely with the aromatics and fish sauce. If you prefer, coconut sugar would be a great substitute here, too. Lime and Rice Vinegar: These are the “sour” elements of our sauce! Use unsweetened rice wine vinegar and fresh lime (you’ll use both the zest and the juice for maximum sourness). Chinese 5 Spice: We add just a tiny bit (1/4 teaspoon) to the meatball mixture. I love it, but if you don’t want to buy a whole new spice jar for just a quarter teaspoon, you can use an equal amount of Garam Masala. Or, try ground allspice, but reduce it to 1/8 teaspoon instead. Fish Sauce: Oh, how I love fish sauce! As you might’ve seen in our Vietnamese Pho, sesame ginger shrimp marinade, or Thai chicken salad recipes, it adds an incredible salty, umami, and slightly funky flavor that nothing else can replicate. I always have Red Boat and Three Crabs in my pantry (both are excellent choices for this dish). Chicken Broth: Grab your favorite store-bought or homemade chicken broth. Vegetable broth works perfectly fine here, too. We only need a small amount to blend with the coconut milk and create our sauce. Find the full recipe with measurements below. Tips for Making Our Favorite Sweet and Sour Meatballs Tip 1: Use full-fat coconut milk. The secret to these meatballs starts with a can of full-fat coconut milk that hasn’t been shaken. We’ll scoop a couple of tablespoons of that thick coconut cream right from the top of the can and add it to our meatball mixture. The rest of the coconut milk will then form the base of our incredible sweet and sour sauce. Tip 2: Chill before forming. I like to form the meatballs and then pop them in the fridge for 5 to 10 minutes. This little trick helps them firm up, so they stay beautifully round when you cook them. Tip 3: Make the sauce in the same pan. After browning your meatballs, you’ll build the sweet and sour sauce right in the same pan. Then, simmer the meatballs in the sauce until they’re cooked through. Tip 4: Reduce your sauce. At this point, the sauce will be a bit thin. So, we’ll remove the meatballs and let the sauce continue to simmer and reduce down into a thicker, shinier consistency (usually takes about 10 minutes). Tip 5: Finish with fresh lime. Finish it off with a final squeeze of lime, then serve your sweet and sour meatballs with plenty of that incredible flavor-packed sauce spooned over the top. Sweet and Sour Meatballs PREP 15 mins COOK 25 mins TOTAL 40 mins PREP 15 mins COOK 25 mins TOTAL 40 mins This Asian-inspired sweet and sour meatballs recipe is bursting with flavor. I’m betting once you try them, you’ll add this recipe to your rotation for sure! Remember, we need the coconut cream and coconut milk inside the can separated, so no shaking! You’ll use the cream for the meatball mixture, and the rest of the can for the sauce. Try these piled on top of coconut rice, cilantro lime rice, rice noodles, or cooked quinoa. 6 Servings You Will Need 2 pounds (907g) ground chicken, 92/8 1 (15oz) can full-fat coconut milk, do not shake 1 ½ tablespoons minced fresh ginger 2 teaspoons lemongrass paste, see tips 3 cloves garlic, minced 1 green onion, minced 2 tablespoons chopped fresh basil 2 tablespoons chopped fresh mint 5 tablespoons (66g) brown sugar (1 tablespoon for meatballs, 4 tablespoons for sauce) 1/4 teaspoon Chinese 5 Spice 1 teaspoon fish sauce 1 tablespoon toasted sesame oil 1 tablespoon avocado oil 3/4 cup (177ml) chicken broth 3 tablespoons rice vinegar 1 lime, zested, then cut in half Fine sea salt Optional topping: sliced green onion, cilantro leaves, chopped basil, chopped mint Directions 1Make the meatball mix: In a large mixing bowl, combine the ginger, lemongrass paste, garlic, green onion, basil, mint, 1 tablespoon brown sugar, 1/4 teaspoon Chinese 5 Spice, 1 teaspoon fish sauce, and 1 ½ teaspoons salt. Give everything a really good mix. 2Add the chicken and coconut cream: Now, add the ground chicken. Open your can of coconut milk and, using a tablespoon, scoop 2 tablespoons of the thick coconut cream from the top. Add this cream to the chicken, saving the rest of the can for the sauce. Mix the chicken and coconut cream into the rest of the meatball mixture until just combined. 3Roll meatballs: Roll the mixture into roughly 1 ounce (30g) meatballs. Refrigerate them for 5 to 10 minutes to help them firm up. 4Brown meatballs: In a wide, deep skillet with a lid, heat the sesame oil and avocado oil over medium heat. Carefully place the meatballs into the hot oil so they’re evenly spaced, and brown them on one side. 5Build the sweet and sour sauce: Flip each meatball over. Now, add in the chicken broth, coconut milk, rice vinegar, remaining 4 tablespoons of brown sugar, zest from 1 lime, juice from half of the lime, and 1/2 teaspoon of salt. Swirl the pan gently to combine all the ingredients. Cover the skillet with a lid and simmer gently until the meatballs are cooked through, about 10 minutes. An internal thermometer should read 165°F when inserted into the middle of a meatball. 6Reduce the sauce: Once the meatballs are cooked, remove them from the skillet and place them onto a platter. Keep the lid off, turn the heat to high, and reduce the sauce. You want to reduce it until it’s thickened and just barely coats the bottom of the skillet, which takes about 10 minutes. 7Serve: Finish the sauce by squeezing in the juice from the second half of the lime and swirling to mix. Then, pour the sauce over the meatballs and garnish with fresh sliced green onion and herbs. 1Make the meatball mix: In a large mixing bowl, combine the ginger, lemongrass paste, garlic, green onion, basil, mint, 1 tablespoon brown sugar, 1/4 teaspoon Chinese 5 Spice, 1 teaspoon fish sauce, and 1 ½ teaspoons salt. Give everything a really good mix. 2Add the chicken and coconut cream: Now, add the ground chicken. Open your can of coconut milk and, using a tablespoon, scoop 2 tablespoons of the thick coconut cream from the top. Add this cream to the chicken, saving the rest of the can for the sauce. Mix the chicken and coconut cream into the rest of the meatball mixture until just combined. 3Roll meatballs: Roll the mixture into roughly 1 ounce (30g) meatballs. Refrigerate them for 5 to 10 minutes to help them firm up. 4Brown meatballs: In a wide, deep skillet with a lid, heat the sesame oil and avocado oil over medium heat. Carefully place the meatballs into the hot oil so they’re evenly spaced, and brown them on one side. 5Build the sweet and sour sauce: Flip each meatball over. Now, add in the chicken broth, coconut milk, rice vinegar, remaining 4 tablespoons of brown sugar, zest from 1 lime, juice from half of the lime, and 1/2 teaspoon of salt. Swirl the pan gently to combine all the ingredients. Cover the skillet with a lid and simmer gently until the meatballs are cooked through, about 10 minutes. An internal thermometer should read 165°F when inserted into the middle of a meatball. 6Reduce the sauce: Once the meatballs are cooked, remove them from the skillet and place them onto a platter. Keep the lid off, turn the heat to high, and reduce the sauce. You want to reduce it until it’s thickened and just barely coats the bottom of the skillet, which takes about 10 minutes. 7Serve: Finish the sauce by squeezing in the juice from the second half of the lime and swirling to mix. Then, pour the sauce over the meatballs and garnish with fresh sliced green onion and herbs. Adam and Joanne's Tips Storing: Transfer to an airtight container and refrigerate for up to 4 days or freeze for up to 1 month. Thaw overnight in the fridge before gently reheating. Lemongrass paste: I buy the refrigerated lemongrass paste in a squeezable tube sold near the fresh herbs. Using fresh lemongrass: Cut away the top and bottom of the stalk. Then, peel away the tough outer layers until you reach the tender, pale yellow core. Finally, thinly slice the stalk, then chop it as finely as possible or use a food processor to mince it. If you make a larger batch of homemade lemongrass paste, store it in an airtight container in the fridge for a few days or freeze in ice cube trays, transfer to freezer bags, and freeze for up to 3 months. Best pan to use: We love a rondeau or braiser pan for this dish as it is large, wide, with tall-ish, straight sides, and a lid. A Dutch oven works, as well. If you do not have a pan with a lid, you can cover the skillet with aluminum foil. Leftover ginger, garlic, and green herbs: If you need another way to use up the aromatics purchased for this recipe, try making homemade chili paste like our yellow curry paste or green curry paste (recipe coming soon). The nutrition facts provided are estimates. Storing: Transfer to an airtight container and refrigerate for up to 4 days or freeze for up to 1 month. Thaw overnight in the fridge before gently reheating. Lemongrass paste: I buy the refrigerated lemongrass paste in a squeezable tube sold near the fresh herbs. Using fresh lemongrass: Cut away the top and bottom of the stalk. Then, peel away the tough outer layers until you reach the tender, pale yellow core. Finally, thinly slice the stalk, then chop it as finely as possible or use a food processor to mince it. If you make a larger batch of homemade lemongrass paste, store it in an airtight container in the fridge for a few days or freeze in ice cube trays, transfer to freezer bags, and freeze for up to 3 months. Best pan to use: We love a rondeau or braiser pan for this dish as it is large, wide, with tall-ish, straight sides, and a lid. A Dutch oven works, as well. If you do not have a pan with a lid, you can cover the skillet with aluminum foil. Leftover ginger, garlic, and green herbs: If you need another way to use up the aromatics purchased for this recipe, try making homemade chili paste like our yellow curry paste or green curry paste (recipe coming soon). The nutrition facts provided are estimates. Nutrition Per Serving Serving Size 1/6 of the recipe / Calories 415 / Total Fat 29.1g / Saturated Fat 14.8g / Cholesterol 130mg / Sodium 817mg / Carbohydrate 11.1g / Dietary Fiber 0.3g / Total Sugars 7.6g / Protein 28.4g AUTHOR: Joanne Gallagher We’re Adam and Joanne, a couple passionate about cooking and sharing delicious, reliable recipes since 2009. Our goal? To inspire you to get in the kitchen and confidently cook fresh and flavorful meals.More About Us