Description
Crispy Chinese sweet and sour fish with tangy sauce, colorful vegetables, and pineapple—this takeout favorite is easier than you think and tastes incredible fresh from your kitchen.
Prep Time: 15 minutes | Cook Time: 15 minutes | Total Time: 30 minutes | Servings: 4
Ingredients
- 1 pound white fish fillets (cod or tilapia work perfectly—firm and mild)
- 1/2 cup cornstarch (this is what creates that crispy coating—don’t substitute flour)
- 1/4 cup soy sauce (low-sodium gives you more control over saltiness)
- 1/4 cup rice vinegar (this adds that signature tangy flavor)
- 1/4 cup ketchup (sounds weird but it’s traditional and adds sweetness)
- 2 tablespoons brown sugar (adjust to your sweetness preference)
- 1 large bell pepper, diced (red or green both look beautiful)
- 1 medium onion, sliced into wedges
- 1 cup pineapple chunks (fresh or canned, just drain well if using canned)
- 2 cloves garlic, minced (fresh is way better than jarred here)
- 1 teaspoon fresh ginger, grated (adds that authentic Chinese flavor)
- 2 tablespoons vegetable oil, plus more for frying (you need something with a high smoke point)
- Salt and pepper, to taste
- 2–3 green onions, sliced, for garnish
Instructions
- Cut your fish fillets into bite-sized pieces, about 1-1.5 inches each. Pat them completely dry with paper towels (this is crucial for getting crispy fish), then season all over with salt and pepper.
- Put the cornstarch in a shallow bowl or plate. Working one piece at a time, coat each fish piece thoroughly in cornstarch, pressing gently so it really sticks. Set them aside on a plate and let them sit for 5 minutes—this helps the coating adhere better.
- While the fish rests, make your sweet and sour sauce: in a bowl, whisk together the soy sauce, rice vinegar, ketchup, and brown sugar until the sugar dissolves. Taste it and adjust if you want it sweeter or tangier. Set aside.
- Heat about 2 tablespoons of vegetable oil in a large skillet over medium-high heat until it’s shimmering and a pinch of cornstarch sizzles when you drop it in. Working in batches so you don’t crowd the pan, add the coated fish pieces and cook undisturbed for 2-3 minutes per side until golden brown and super crispy. Don’t move them around too much or they won’t crisp up. Transfer to a paper towel-lined plate.
- In the same skillet, add a tiny bit more oil if needed. Add the minced garlic and grated ginger, and let them sizzle for about 30 seconds until fragrant—watch them closely so the garlic doesn’t burn.
- Toss in the bell pepper and onion, and stir-fry for 3-4 minutes until they’re softened but still have some crunch to them.
- Pour in your sweet and sour sauce and add the pineapple chunks. Bring everything to a simmer and let it bubble for about 2 minutes until the sauce thickens slightly.
- Return your crispy fish to the skillet and gently toss everything together for 2-3 minutes, just until the fish is coated with sauce but still crispy. Don’t let it sit in the sauce too long or you’ll lose that crunch.
- Serve immediately over steamed rice, garnished with sliced green onions, and prepare for everyone to ask how you made this taste like restaurant takeout.
Nutrition Information (Per Serving):
- Calories: 285
- Carbohydrates: 35g
- Protein: 24g
- Fat: 6g
- Saturated Fat: 1g
- Fiber: 2g
- Sodium: 720mg
- Vitamin C: 45mg (50% DV)
- Vitamin A: 950 IU (19% DV)
- Potassium: 580mg (12% DV)
White fish is an excellent lean protein source, and the bell peppers and pineapple add vitamin C. This is a relatively light dish considering how flavorful it is.
Notes:
- Seriously, pat that fish bone-dry before coating or the cornstarch won’t stick and the fish won’t crisp up
- Don’t skip the batch-cooking step—crowding the pan makes the fish steam instead of fry, and you’ll end up with soggy coating
- Add the fish to the sauce at the very last minute; the longer it sits, the soggier it gets
- Every stovetop runs differently, so adjust your heat if the fish is browning too fast or too slow
- You can prep all the ingredients ahead of time, but this dish needs to be cooked and served immediately for the best texture
Storage Tips:
- This dish is best eaten immediately while the fish is crispy
- If you must store leftovers, keep the fish and sauce separate in airtight containers in the refrigerator for up to 2 days
- Don’t freeze this—the texture of the fried fish gets weird when thawed
- Reheat the fish in a 400°F oven for 5-7 minutes to try to crisp it up, and warm the sauce separately on the stovetop
- Microwaving makes the coating soggy and rubbery, so avoid it if possible
Serving Suggestions:
- Classic Style: Serve over steamed white or jasmine rice with the sauce spooned generously on top
- Complete Meal: Pair with stir-fried vegetables or a simple cucumber salad to balance the richness
- Fancy Presentation: Serve over fried rice or noodles for a more substantial meal that feels special
- Family Style: Put everything in a big serving dish and let everyone help themselves, with extra green onions and sesame seeds on the side
Mix It Up (Recipe Variations):
- Spicy Sweet and Sour Fish: Add 1-2 tablespoons sriracha or chili garlic sauce to the sweet and sour sauce for a spicy kick
- Deluxe Sweet and Sour Fish: Toss in cashews, water chestnuts, or snap peas with the vegetables for extra texture and crunch
- Lighter Baked Version: Coat the fish and bake at 425°F for 12-15 minutes instead of pan-frying—less crispy but way less oil
- Gluten-Free Sweet and Sour Fish: Use tamari instead of regular soy sauce and make sure your other ingredients are gluten-free certified
What Makes This Recipe Special:
This classic Chinese-American dish showcases the traditional Cantonese technique of coating proteins in cornstarch before frying, which creates a protective crispy layer that stays crunchy even when sauce is added. The sweet and sour flavor combination—balancing tangy vinegar with sweet sugar and ketchup—has been perfected in Chinese cooking over centuries and represents the harmony of contrasting flavors that’s central to Chinese cuisine. What sets homemade sweet and sour fish apart is the ability to control the fish quality, adjust the sweet-to-sour ratio to your preference, and most importantly, eat it while it’s still hot and crispy instead of soggy from sitting in a takeout container.
