
Bola bola are Filipino meatballs, and this version gets the full sweet and sour treatment—meatballs coated in ketchup-pineapple sauce with chunks of bell pepper and carrot. The panko mixed into the meat keeps the meatballs tender, not dense or tough.
The key is frying the meatballs until they're deep golden brown, not just cooked through. Proper browning gives them flavor and helps them hold their shape in the sauce. You're looking for a dark golden crust all over before they go in. Fry in batches—crowding the pot drops the oil temperature and you'll end up with soggy meatballs instead of crispy ones. Give each batch space to move around.
The sauce combines ketchup, vinegar, and pineapple for that sweet-sour balance. The sweet-sour contrast makes the savory pork taste more pronounced, and the acidity keeps the dish from feeling heavy.
Don't forget the cornstarch slurry—it's what thickens the sauce and makes it coat the meatballs. Add it slowly while stirring, and stop when the sauce is slightly thinner than you want—it will thicken more as it cools. Too thick and it turns gloopy; too thin and it won't coat the meatballs.
For the meatballs:
Sweet and sour bola bola is Filipino sweet and sour pork, but with meatballs. Pork balls in tangy sauce with pineapples, bell peppers, and carrots.
For the sauce:
Make the meatball mixture: In a large bowl, combine ground pork, onion, garlic, panko, egg, salt, and black pepper. Mix with your hands until everything is evenly distributed and the mixture holds together when squeezed. Don't overmix or the meatballs will be dense.
Shape the meatballs: Scoop out about 1 tablespoon of the mixture and roll it between your palms into a ball roughly 1 inch in diameter. Place on a plate or tray. Repeat with remaining mixture—you should get about 25-30 meatballs. Wet your hands occasionally if the mixture starts sticking.
Fry the meatballs: Heat 2-3 inches of neutral oil in a deep, heavy-bottomed pot over medium-high heat until it reaches 350°F (175°C), or until a small piece of the mixture sizzles immediately when dropped in. Working in batches of 8-10 meatballs to avoid crowding, fry until deep golden brown all over and cooked through, 4-5 minutes per batch. Cut one open to check—the center should be fully cooked with no pink remaining. Transfer to a wire rack or paper towels to drain. Set aside.
Start the sauce: In a large wok or deep pan over medium heat, add 1 tbsp neutral oil. Add garlic and cook, stirring constantly, until fragrant but not browned, about 30 seconds. If it starts to brown, pull the pan off the heat—burnt garlic will make the sauce bitter.
Build the sauce base: Add ketchup, vinegar, water, and pineapple tidbits with their liquid. Stir to combine and bring to a simmer.
Thicken the sauce: In a small bowl, mix cornstarch with 2 tbsp water until smooth with no lumps. Slowly pour the slurry into the simmering sauce while stirring constantly. The sauce will thicken within 1-2 minutes and become glossy. You want the sauce thick enough to lightly coat the back of a spoon. If it's too thick, add a splash of water. If it's too thin, make more slurry and add it gradually.
Cook the vegetables: Add carrots to the simmering sauce and cook until softened but not fully cooked, about 2-3 minutes. Add bell peppers and red onion; continue cooking until they're tender but still have some bite, 1-2 minutes. The vegetables should be crisp-tender, not mushy.
Season: Taste the sauce and adjust seasoning with salt, black pepper, and sugar as needed. The sauce should balance sweet, sour, and savory.
Combine and serve: Add the fried meatballs to the sauce and toss gently to coat. Let everything heat through for 1-2 minutes, then remove from heat. Serve warm over rice.


