Vietnamese Beef Noodle Soup (Pho Bo) - amazing noodle soup with a plethora of meats and fresh herbs | recipe from

Beef Noodle Soup (Pho Bo)

Course: Main Course, Soup
Cuisine: Vietnamese
Prep Time: 1 hour 30 minutes
Cook Time: 2 hours 20 minutes
Total Time: 3 hours 50 minutes
Servings: 8
Calories: 760 kcal
Author: Trang

Beef Noodle Soup (Pho Bo) is a quintessential Vietnamese dish and this step-by-step recipe shows you how to make this amazing, hearty soup from scratch. If you’re a fan of Beef Pho and have always wanted to learn how to make this delicious soup at home, this is an authentic recipe to try. I’ll show you how to make a rich and hearty beef stock using my “secret” ingredients and how to infuse the soup with the aromatic signature pho spices. Awesome food takes time to make and this dish is worth all the love and effort you put into it. Feel good about taking the time to prepare a healthy and tasty meal for your family and friends. Enjoy!


  • 6 lbs beef leg bones
  • 2 lbs oxtail
  • 7 Tbsp salt , divided
  • 1/2 cup white vinegar , divided
  • 2 lbs beef brisket
  • 1 large sweet onion
  • 4- inch section ginger
  • 1/2 lb white radish
  • 6 quarts water
  • 2 oz rock sugar
  • 1 lb beef tendon
  • 2 sticks cinnamon
  • 4 whole star anise
  • 1 Tbsp coriander seeds
  • 1 tsp fennel seeds
  • 10 pieces cloves
  • 3 pods cardamom
  • 1 bunch cilantro
  • 2 cups bean sprouts
  • 1 bunch Thai basil
  • 1 bunch sawtooth herb
  • 1 bunch green onions
  • 1/4 small brown onion
  • 2 green jalapenos
  • 2 limes
  • 4 red chilies
  • 3 Tbsp fish sauce
  • 2-14 oz packages rice sticks/pho noodle , size Medium
  • 1 lb beef eye of round
  • 1/4 tsp ground black pepper
  • Hoisin sauce
  • Sriracha sauce


Preparing the Soup Stock

  1. Transfer half of the beef bones into a large colander and sprinkle with 1 Tbsp salt. Add the remaining bones and oxtail and sprinkle with another 1 Tbsp salt. Using your fingers, gently rub the salt onto the bones and oxtail. Under cold running water, wash each piece thoroughly and transfer into a large bowl. Add 2 Tbsp salt and 1/4 cup white vinegar to the bones and oxtail. Fill the bowl with cold water. Let soak for 10 minutes. Rinse the bones and oxtail under cold running water.
  2. Fill a large stockpot half full with water and bring to a rapid boil. Add the bones and oxtail into the pot. As the water comes to a boil again, gently stir everything. (This helps to move the impurities to the surface.) Skim off the foam and discard. Boil vigorously for 6-7 minutes. Pour out the boiling liquid and discard. Transfer all pieces into a colander. Under cold running water, wash each of the bones and oxtail. Run your fingers along each piece washing away any loose bits of meat or marrow.
  3. Wash the stockpot with soap and hot water.
  4. Sprinkle 1 Tbsp salt on both sides of the brisket. Rinse off the salt using cold water. Pat dry with paper towels.
  5. Peel off the skin of the sweet onion. Cut the onion in half. Place the onion halves and ginger on a cooking grate or directly on the burner. Cook over Medium Low heat until charred. Rotate the onion and ginger so they char evenly. This takes approximately 10 minutes. Peel off the charred outer skin of the onion and discard. Use a small knife to scrape off all the char and then rinse with water. Peel off the ginger skin and discard. Cut the ginger in half lengthwise.

  6. Remove the skin of the white radish using a vegetable peeler. Cut the radish into large chunks.
  7. Fill the stockpot with 6 quarts water. Bring to a rapid boil over High heat. Add the beef bones filling the bottom of the pot. Add the white radish, ginger and onion. Add the beef brisket. Place the remaining bones and oxtail on top of the brisket. (Layering it this way keeps the brisket submerged in the liquid.) Add the rock sugar and 1 Tbsp salt. Add enough water to cover the bones completely. 

  8. As the liquid comes to a boil, skim off the foam and discard. When it comes to a gentle boil, reduce the heat to Low. Cover the stockpot leaving a slight gap. Let the stock simmer for at least 1 1/2 hours. Every 30 minutes, skim off the foam and discard. Cook using Low heat. Avoid boiling the stock vigorously which will make the stock cloudy and reduce the liquid.

Cooking the Beef Tendon

  1. Transfer the beef tendons into a large bowl. Sprinkle both sides with 1 Tbsp salt. Drizzle 1/4 cup white vinegar on top. Coat the tendons with the salt and vinegar solution. Let rest for 10 minutes. Rinse well with cold water. Transfer the tendons into an InstantPot pressure cooker. Cover the tendons with an inch of water. Cover with the lid and pressure cook on High for 30 minutes. Allow for a full natural pressure release.

  2. Transfer the tendons into a bowl of ice water and let soak for 1 minute. Transfer to a clean bowl and cover. Store in the refrigerator until it’s time to slice the meats for serving.

Toasting the Spices

  1. Break the cinnamon sticks into smaller pieces using a pestle or rolling pin. In a small skillet over Low heat, add the cinnamon sticks, star anise, coriander seeds, fennel seeds, cloves and cardamom pods. Stirring occasionally, toast the spices until they are fragrant, approximately 7-8 minutes.

  2. Transfer the spices into a large tea filter. Close the opening of the filter bag by tying it with cooking twine.

Preparing the Herbs and Vegetables

  1. Trim and wash the cilantro. Wash the bean sprouts and trim the tails if needed. Wash the Thai basil and sawtooth herb.
  2. For the green onions, separate the root from the stems. Transfer the root portions into a small bowl and set aside for now. Chop the green onion stems and transfer into a small bowl. Chop the cilantro and add to the chopped green onion stems. Combine together. Set the bowl aside for now.
  3. Cut the brown onion into thin slices. Transfer to a small bowl and set aside for now.
  4. Slice the jalapenos into thin coins.
  5. Cut the limes into wedges.
  6. Arrange the bean sprouts, Thai basil, sawtooth herb, jalapenos, lime wedges and red chilies onto a large plate. Refrigerate until ready to serve.

Completing the Soup Stock

  1. Remove the beef brisket and transfer into a large bowl of ice water. Rotate in the ice water and let soak for 2 minutes. Transfer the brisket to a plate. Cover and set aside for now.
  2. Add the spice bag and immerse in the stock. Continue simmering for another 30 minutes.
  3. Transfer the spice bag, vegetables and beef bones into a large bowl and discard. Transfer the oxtail into a large bowl of ice water. Let soak in the ice water for 1 minute. Transfer the oxtail to a bowl and set aside for now.
  4. Filter the stock into a large pot by pouring it through a strainer covered with cheesecloth.
  5. Transfer just the amount of soup stock you plan to eat right away into a smaller saucepan. Season with fish sauce using approximately 1 Tbsp fish sauce per 8 cups soup stock.

Making the Rice Noodle

  1. Transfer the dry rice noodle into a large colander and bowl. Fill the bowl with warm water. Soak the noodles until they are limp, approximately 10 minutes. Drain the rice noodle. 

  2. Bring a large pot of water to a rapid boil. Transfer the noodles into the boiling water and stir together. Cook until you can easily pinch a noodle in half between your fingers, approximately 3-4 minutes.

  3. Drain the noodles into a large colander. Rinse with cold water. Toss the noodles in the colander to remove the excess water. Optionally, use a salad spinner to remove the water.
  4. Spread out the noodles on a large plate and let air dry while continuing with the next steps.

Slicing the Meats

  1. Dry the beef tendons using a paper towel. Holding firmly onto the tendon, slice it in half lengthwise. Cut the tendon into thin slices.
  2. Cut the beef brisket into smaller sections, approximately 3-inches wide. Cut each section into thin slices, cutting across the grain.
  3. The oxtail can be served as-is. Optionally, remove the meat from the bones using a small spoon.
  4. Arrange the cooked meats on a large plate.

  5. Thinly slice the beef eye of round and put on a separate plate.

Serving the Beef Noodle Soup

  1. To serve, transfer some rice noodle into a medium-sized soup bowl. Add a few pieces of the oxtail, brisket and tendon. Add a green onion root and brown onion slices.

  2. Bring the soup stock to a gentle boil. Add a few slices of the beef eye of round and cook in the stock to the desired doneness, a few seconds for rare and until no longer pink for well done. Transfer the beef slices into the bowl. Ladle a generous amount of the soup stock into the bowl. Top the soup with the chopped green onions and cilantro mixture and freshly ground black pepper.

  3. Serve this amazing Beef Noodle Soup with the fresh herbs and vegetable platter along with Hoisin sauce and Sriracha sauce.
  4. If you enjoy rare beef, simply add the raw beef eye of round slices directly into the noodle bowl. Pour the hot soup stock on top and this will partially cook the beef.

Notes, Tips & Tricks

Simmer the stock for at least 1 1/2 hours for the best flavor. Simmering longer enhances the flavor as more of the bone essence is extracted.

Avoid boiling vigorously as this will make the stock cloudy and reduce the liquid considerably. Also avoid covering the stockpot completely as this will also make the stock cloudy.

Some folks like to simmer for hours and this is just fine. I usually cook the stock for the initial 1 1/2 hours + 30 minutes with the spices. This is about how long it takes me to prep the remaining ingredients.

Add fish sauce just to the portion of soup stock you’re eating right away. If refrigerating the stock, don’t add fish sauce to the entire batch. Stock with fish sauce has a tendency to turn slightly sour when refrigerated.

This recipe yields a generous amount of soup stock, approximately 22 cups. Depending on your serving size, the batch could be split into two meals. If enjoying as two meals, only cook one 14 oz package of rice noodle at a time. If serving the entire batch, then use both packages. A 14 oz package of dry rice noodle makes approximately 2 lbs rice noodle, approximately 7 cups.

The recipe yields approximately 10 medium-sized bowls or 8 large-sized bowls.

Nutrition Facts
Beef Noodle Soup (Pho Bo)
Amount Per Serving
Calories 760
* Percent Daily Values are based on a 2000 calorie diet.