Ingredients:

  • 1 pound (450g) ground beef (80/20 blend recommended)
  • ½ pound (225g) ground pork
  • ½ cup (50g) breadcrumbs, plain
  • ¼ cup (30g) grated Parmesan cheese
  • 1 large egg, lightly beaten
  • 2 cloves garlic, minced
  • 2 tablespoons finely chopped fresh parsley
  • 1 teaspoon dried oregano
  • ½ teaspoon salt
  • ¼ teaspoon black pepper
  • 2 tablespoons olive oil, for browning
  • 1 tablespoon olive oil
  • 1 medium onion, chopped
  • 2 carrots, peeled and chopped
  • 2 celery stalks, chopped
  • 2 cloves garlic, minced
  • 8 cups (1.9 litres) chicken broth
  • 1 (28 ounce) (794g) can crushed tomatoes
  • 1 (15 ounce) (425g) can cannellini beans, rinsed and drained
  • 1 teaspoon dried basil
  • ½ teaspoon dried oregano
  • ½ teaspoon salt, or to taste
  • ¼ teaspoon black pepper, or to taste
  • 1 cup (80g) small pasta shapes (ditalini, orzo, or elbow macaroni)
  • Fresh parsley, chopped (for garnish)
  • Grated Parmesan cheese (for garnish)

Instructions:

  1. In a large bowl, gently combine ground beef, ground pork, breadcrumbs, Parmesan cheese, egg, garlic, parsley, oregano, salt, and pepper. Don't overmix!
  2. Roll the mixture into 1-inch meatballs.
  3. Heat olive oil in a large pot or Dutch oven over medium-high heat. Brown the meatballs in batches, ensuring not to overcrowd the pot. Remove meatballs and set aside.
  4. Add olive oil to the pot. Add onion, carrots, and celery and sauté until softened, about 5-7 minutes. Stir in garlic and cook for another minute until fragrant.
  5. Pour in chicken broth and crushed tomatoes. Add cannellini beans, basil, oregano, salt, and pepper. Bring to a boil, then reduce heat and simmer for 10 minutes.
  6. Gently add the browned meatballs back to the pot. Simmer for 20-25 minutes, or until the meatballs are cooked through and the flavors have melded.
  7. Add pasta to the soup and cook according to package directions, usually 8-10 minutes.
  8. Ladle soup into bowls. Garnish with fresh parsley and grated Parmesan cheese.