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:
- In a large bowl, gently combine ground beef, ground pork, breadcrumbs, Parmesan cheese, egg, garlic, parsley, oregano, salt, and pepper. Don't overmix!
- Roll the mixture into 1-inch meatballs.
- 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.
- 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.
- 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.
- 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.
- Add pasta to the soup and cook according to package directions, usually 8-10 minutes.
- Ladle soup into bowls. Garnish with fresh parsley and grated Parmesan cheese.