JOIN! 12 Weeks for $1

Vietnamese Meatball and Watercress Soup (Canh)

4 Servings

40 minutes

Made This Recipe? Write a Review.
Thank you for submitting your review! A member of our team is confirming the review meets our site's Community Guidelines. It will be posted on the site shortly.

Watercress adds a peppery note to the soup; look for “live” watercress, which is packaged with its roots attached. It stays fresher longer and is easier to clean. To prep it, trim off and discard the roots, rinse and drain the greens, then cut them into 1½-inch lengths, discarding any stems that are thick or tough. If you prefer, substitute an equal amount of baby spinach for the watercress, but roughly chop the leaves before using. We also liked this soup made with chicken bouillon paste instead of chicken broth; use 2 tablespoons of paste dissolved in 2 quarts of water.




Don't leave the meatballs at room temperature after shaping them. Chilling firms them so they hold together when added to the simmering broth.

40 minutes


  • 1

    pound ground pork

  • 6

    scallions, white parts finely chopped, green parts thinly sliced


Pardon the interruption

You need to be a Milk Street Digital Member to see the full recipe


and get access to all of our recipes and articles online, as well as in print.

How we use your email.

Your email address is required to identify your subscription. We will use it for customer service as well as other communications from Milk Street. We will not share, or rent your email address.

Donna S.
April 30, 2024
I adore this soup
I adore this soup; I adore that you are highlighting bitter greens in recipes; and I adore that you are not shying away from the more difficult ones to find for some people and instead offering substitutions if necessary. The watercress in this soup gives it the best flavor, and I believe we should all be adding more bitter herbs and greens back into our diets as most of us (me included) strayed away from them for far too long. I usually make this soup with my own homemade bone broth but didn't have any today and using store-bought chicken stock was (surprisingly) just fine. I also subbed a red onion for the yellow and I may even enjoy the red better -- although, again, either is perfect...use what you got. I see no need to add any starch here (rice, noodles) as it is filling even without and the flavor is superb (but again, you do you!) Well done, Milk Street. Keep 'em coming.
Alex C.
January 19, 2024
Easy, delicious and fun to make
Followed the recipe to the letter and served over fresh rice noodles. It was simply delicious and filling without being heavy. Perfect cold weather meal!
Sivan S.
April 22, 2023
My husband and I both were pleased with this soup and we’ll certainly make it again. We replaced the watercress with baby arugula and it tasted great. It’s also good with some cooked rice added to the bowl before adding the soup.
Jan W.
April 6, 2023
So good
This is my favorite Milk Street soup recipe. I always make it with dark meat ground turkey and it’s fabulous.
Paula W.
January 13, 2023
So tasty and easy!
I rarely have watercress available so I used baby spinach and placed it in the bowl before spooning the soup on top. The hot soup was enough to wilt the spinach.
Lloyd T.

Good job Maynard!!! Just happened to have everything on hand... Love

Jennifer B.

Delicious soup. I didn't have stock on hand so used bouillon and overdid it a bit, will use smaller bouillon to water recipe next time. The meatballs were the star. I used as arugula and it worked fine.

Walter J F.

I made the canh. It is good stuff! I will make it again. I picked up three bunches of watercress (@$1.29 each) just to be safe and have enough. I used two of them in the soup. I also got two lbs of ground pork.

I followed the directions in the recipe, more or less. I made the meatballs with exactly one lb (454 g) of the ground pork, and overall I used a bit more ginger than the recipe called for though not a lot. Seven scallions instead of six, seven garlic cloves instead of four, and so on.

Here are my calculations:
Vietnamese Chicken Watercress soup (Canh) 11/21/2020
Cals/g Ingredient used weight used g weight oz cals used
0.80 ginger 8 0.3 6.4
8.57 grapeseed oil 25 0.9 214.3
0.40 Onion 197 6.9 78.8
1.50 garlic 27 0.9 40.5
3.33 scallion greens 30 1.1 99.9
0.11 Watercress 243 8.5 26.4
0.02 chicken stock 1753 61.5 35.1
0.35 fish sauce 38 1.3 13.3
0.24 lime juice 32 1.1 7.7
2.63 ground pork 454 15.9 1193.3
0.52 egg white 36 1.3 18.7
0.38 scallion whites 54 1.9 20.5
0.80 ginger 17 0.6 13.6
0.35 fish sauce 17 0.6 6.0
0.00 salt 10 0.4 0.0
2.52 pepper 2 0.1 5.0
Ingredient weight 2914 102.2 1768.5 Total calories
final wt (H2O loss) 2506 87.9 0.71 calories/gram
20.11 calories/oz

All in all, this tasty soup is low calorie. I have enjoyed it as is, and with cooked rice added. One could substitute prepared frozen meatballs for the homemade and this soup would be even quicker indeed to make. A Vietnamese friend makes this with tofu vs meatballs. Maybe I will try it with tofu and using Tone's Chicken or Minor's Chicken base + water to make the stock.

Natalia S.

Wow!!! Yum!!!! Delicious and simple!!! I used Swanson chicken stock and it turned out slightly salty - easy fix with the addition of 1.5 cups of water. Next time I will use low sodium chicken stock from brand Swanson

Gail S.

It's cooking on the stove right now. Only question is when should I add the green section of the scallion? I can't find it in the recipe.

Lynn C.

Hi Gail -

In the last sentence of Step 3, the scallion greens get stirred in at the end.

The Milk Street Team