With the Lunar New Year approaching, my kitchen has been in full prep mode. Because my husband’s workplace gifted us a massive seafood box, we’ve been eating a lot of fish and shrimp lately! Today, I’m sharing one of my son’s absolute childhood favorites: Tomato Basa Fish (Fan Qie Yu).
It is sweet, tangy, and boasts a rich, comforting broth that kids absolutely adore. Best of all, it only takes 10 to 15 minutes to get on the table. It is the perfect, fuss-free weeknight dinner that will have everyone scraping their bowls clean.

What Is Tomato Basa Fish (Fan Qie Yu)?
At its core, Fan Qie Yu (番茄鱼) is a comforting Chinese homestyle dish featuring tender, boneless slices of white fish gently simmered in a rich, sweet, and sour tomato broth. While restaurants often use whole fish or carp, this homestyle version uses basa fillets for sheer convenience and a perfectly boneless, kid-friendly experience.
Looking for something more traditional? > If you love this flavor profile but want to try a slightly more traditional, sophisticated version of this soup using a whole fish or different techniques, check out my Authentic Tomato Fish Soup recipe. It offers a deeper, more tangy broth that adults go crazy for!
1Authentic Tomato Fish Soup (Fan Qie Yu)A comforting and tangy Chinese fish stew featuring tender, velveted fish fillets poached in a rich, naturally sweet tomato and fish bone broth. No ketchup required!Check out this recipeCraving a Spicy Kick? If you love the silky, tender texture of Basa fillets in this comforting tomato broth but want to turn up the heat, you must try my Easy Sichuan Boiled Fish (Shui Zhu Yu). It uses the same foolproof frozen fish hack but swaps the tangy tomatoes for a bold, numbing “Ma La” broth and a signature sizzling oil finish. It’s the spicy, restaurant-style cousin to this mild family favorite!
2Easy Sichuan Boiled Fish (Shui Zhu Yu)A quick, restaurant-style Sichuan Boiled Fish using tender Basa fillets, blanched bean sprouts, and a signature sizzling chili oil finish.Check out this recipe
Ingredients
For the Fish & Marinade:
- 1 Basa fish fillet (about 10 oz / 300g)
- 1/4 tsp black pepper (you can also substitute with White Pepper for a more traditional Chinese flavor profile)
- 2 tbsp (30ml) Shaoxing wine
- 1 tsp (5g) salt
For the Tomato Broth:
- 2 medium fresh tomatoes, diced
- 1 tbsp (15ml) cooking oil
- 2 tbsp (30g) ketchup (tomato sauce)
- 1 tsp (5g) salt
- 1.5 cups (350ml) water
Aromatics:
- 1 scallion (green onion), finely chopped
- 3-4 thin slices of fresh ginger, julienned
Equipment Needed
- A wok or a deep non-stick skillet
- A sharp knife and cutting board
- Instant-read meat thermometer (optional, for safety checking)
Prep & Mise en Place
- Slice the fish: Cut the basa fillet at a 45-degree angle into 1/4-inch thick slices. This technique is similar to how to slice meat for stir fry, ensuring maximum surface area for the marinade and an incredibly tender, fast-cooking bite.
- Marinate: Place the fish slices in a bowl with the pepper, wine, and salt. Gently massage the marinade into the fish and let it rest for 5-10 minutes. Why? The alcohol evaporates during cooking, carrying away any muddy or overly “fishy” odors.

- Prep the veg: Dice your tomatoes and julienne your ginger. Having everything ready is key for a fast cook!
Cooking Process
Step 1: Sauté the aromatics (1-2 minutes, Medium Heat) Heat 1 tablespoon of oil in your wok. Add the chopped scallion (reserve a pinch for garnish) and julienned ginger. Stir-fry until fragrant.
Step 2: Break down the tomatoes (3-4 minutes, Medium-High Heat) Add the diced tomatoes to the wok. Stir-fry them pressing down gently with your spatula until they release their juices and start to turn into a chunky paste. Stir in the 2 tablespoons of ketchup.
Chef’s Note: Cooking the tomatoes down in oil before adding water is crucial. It concentrates their flavor and helps release fat-soluble lycopene. The ketchup adds a necessary punch of concentrated sweetness and acidity that winter fresh tomatoes alone often lack.

Step 3: Build the broth (Bring to a boil) Pour in 1.5 cups of water and the remaining 1 teaspoon of salt. Turn the heat to high and bring the liquid to a rolling boil.


Step 4: Poach the fish (2-3 minutes, Medium Heat) Carefully slide the marinated basa slices into the boiling broth. Let them cook undisturbed for 30 seconds so the proteins set, then gently push them around with the back of your spatula. Cook for about 2 minutes. Basa is highly delicate and cooks incredibly fast. Once the fish is opaque white and the broth has slightly thickened, turn off the heat.




Why This Recipe Works
- The Ketchup Hack: Relying solely on fresh tomatoes often results in a watery, pale soup. A dollop of quality ketchup bridges the gap, providing a vibrant red color and a stable sweet-and-sour base.
- Fast Poaching: By boiling the soup base first and adding the fish last, the fish cooks gently in minutes, retaining a buttery, melt-in-your-mouth texture.
Common Mistakes & Troubleshooting
- Mistake: The fish slices break into a mushy mess.
- Cause: Stirring too aggressively or cooking at a rolling boil for too long.
- Solution: Always push the fish gently with the back of a ladle or spatula, and keep the cooking time under 3 minutes once the fish hits the pan.
- Mistake: The broth is too watery and lacks flavor.
- Cause: Rushing the tomato sauté step.
- Solution: You must cook the fresh tomatoes in the oil until they literally break down into a paste (or “out of sand” as we say in Chinese cooking) before adding the water.
Frequently Asked Questions
Can I substitute the basa fish? Yes! If you can’t find basa, any firm but tender white fish works beautifully. Tilapia, flounder, or cod are excellent choices.
Can I make it spicy? Absolutely. While this version is mild for kids, you can sauté some dried chilies with the ginger, or drizzle some homemade Chinese chili oil over your bowl right before eating.
How to Serve
This savory, saucy dish demands a bowl of perfectly steamed white rice. If you need a refresher on getting those grains fluffy, here is my guide on how to cook perfect rice in a cast iron pot. To round out the meal, I recommend serving it alongside a simple vegetable dish, such as:
If your kids are on a serious tomato kick, you can also start the meal with a classic Tomato Egg Drop Soup.
Storage & Reheat
- Fridge: Store leftovers in an airtight container for up to 3 days.
- Reheat: Reheat gently in a saucepan over medium-low heat just until warmed through. Avoid microwaving on high, as it will overcook the fish and make it rubbery.
Allergen Notice
Contains Fish. (Can be made Gluten-Free if you substitute the Shaoxing wine with dry sherry and ensure your ketchup is a certified GF brand).
Nutrition Disclaimer & Safety Warning
Food Safety: Always ensure that fish is cooked to a safe minimum internal temperature of 145°F (63°C) to prevent foodborne illness. Nutrition: Nutrition information provided below is an estimate and provided for informational purposes only. The sodium levels may vary greatly depending on the brand of ketchup and exact measurements of salt used.
About the Author & Recipe Development
Hi, I’m Lin! I test all of the recipes here at Woks of Love in my own home kitchen to ensure they work for busy families. For this specific recipe, I tested three different ratios of fresh tomatoes to ketchup. I found that 2 fresh tomatoes to 2 tablespoons of ketchup is the “golden ratio”—it provides the fresh, natural acidity of real produce with the stabilized thickness and color of the ketchup, entirely eliminating the need for a cornstarch slurry to thicken the broth.
Authoritative References
- Food Safety Guidelines: To ensure your seafood is cooked safely, refer to the USDA guidelines on Safe Minimum Internal Temperature Chart.
- Nutritional Science: Cooking tomatoes in oil significantly increases the bioavailability of lycopene, a powerful antioxidant. You can read more about the science of thermal processing on tomatoes in this publication by the Journal of Agricultural and Food Chemistry.

Easy Tomato Basa Fish (Fan Qie Yu)
Equipment
- Wok or Deep Skillet
Ingredients
Fish & Marinade
- 10 oz Basa fish fillet sliced at a 45-degree angle
- 1/4 tsp black pepper
- 2 tbsp Shaoxing wine
- 1 tsp salt
Tomato Broth & Aromatics
- 2 medium fresh tomatoes diced
- 1 tbsp cooking oil
- 2 tbsp ketchup
- 1 tsp salt
- 1.5 cups water
- 1 scallion chopped
- 3 slices fresh ginger julienned
Instructions
- Slice the basa fish into 1/4-inch pieces. Toss gently with black pepper, Shaoxing wine, and salt. Set aside to marinate for 5-10 minutes.
- Heat the cooking oil in a wok over medium heat. Add the chopped scallion and julienned ginger, sautéing for 1-2 minutes until fragrant.
- Turn heat to medium-high. Add the diced fresh tomatoes and cook for 3-4 minutes, pressing down gently until they break down into a paste. Stir in the ketchup.
- Pour in the water and the remaining salt. Bring the broth to a rolling boil.
- Carefully add the marinated fish slices to the boiling broth. Let them sit undisturbed for 30 seconds to set, then gently push them around. Cook for 2-3 minutes until the fish is opaque and cooked through.
- Remove from heat, garnish with extra scallions if desired, and serve immediately with hot rice.


















Leave a Reply