Ingredients
6 ounces mild Italian sausage (either bulk or with casings removed)
¼ cup panko breadcrumbs
2 tablespoons milk
1 egg1
2 tablespoons finely grated Parmesan cheese
½ cup diced red onion
1 rib celery, diced
2 medium carrots, sliced thinly
2 cloves garlic, minced
½ white wine
1 can 14.5 oz can diced or crushed tomatoes2
2 ½ cups low sodium vegetable broth3
1 ½ inch x 1 ½ inch square of Parmesan rind4
½ teaspoon Italian seasoning
3 ounces orzo
1 5-ounce can evaporated5 milk
1 ½ cups baby spinach or arugula
grated Parmesan cheese
Combine breadcrumbs and milk to make a panade. Allow to sit for 10 minutes to thoroughly hydrate.
Mix in the sausage, Parmesan cheese, and the egg. Form into small meatballs. I use a 1 tablespoon cookie scoop (AMAZON LINK) to portion the meat and then finish rolling them into balls.
Brown the meatballs. I’ve done than in a skillet and the oven, but lately I’ve been using my air fryer (AMAZON LINK) with a parchment liner.
Heat a 3-quart saucier or saute pan over medium-high heat.6 Put the celery and carrot in the pan and season with a big pinch of salt. Sauté until they start to soften (~5 minutes). If they start to brown, turn the heat down to medium. Add the onions and cook until they begin to turn translucent (~7 minutes). Add the garlic and tomato paste. Sauté 1 minute.
Add white wine to the pan and increase the heat to high. Bring to a boil and allow to reduce by half.
Pour the diced tomatoes (with their juices) and the broth into the pan. Bring the liquid to a boil. Reduce heat so the liquid settles down to a simmer.
Add the Parmesan rind, the Italian seasoning, a big pinch of salt, and a few grinds of black pepper.
Stir in the orzo. Reduce the heat to medium-low and simmer uncovered for 8 to 10 minutes, stirring occasionally so the orzo doesn’t stick to the bottom.
At about the 5 minute mark, stir in the cooked sausage. When the orzo is almost al dente add the milk and the baby spinach. Let the spinach wilt for 1 to 2 minutes. Taste, add more salt and pepper as needed, ladle into soup bowls, and top with grated Parmesan before serving.
Serve with a warmed up baguette and red wine.
We always drink an Italian red with this meal. It’s rare that we push the boat out very far with this soup, however. You want bright acidity to counteract the cream, bright red fruit notes to complement the tomato, and mild tannins so as not to clash with the spices. Usually, I would reach for a Chianti or a Barbera. On this occasion, however, we drank a young Matteo Ascheri Langhe Nebbiolo. I’m too old to buy Barolo or Barbaresco and wait for it to come around. So, lately I’ve been drinking a lot of Langhe Nebbiolo. As usual with this varietal, the Matteo Ascheri was light-bodied, with bright notes of cherry and cranberry. The tannins were soft and silky. It’s not a profound wine that you’d sit and think about. Instead, it was a happy and very quaffable wine that made a great match.
You don’t need a whole egg. I crack the egg into a small ramekin and beat it thoroughly. I then pour about half of the egg into the meatball mixture.
I strongly prefer a brand that does not have citric acid or calcium chloride in the ingredient list.
As always, I use Better than Bouillon’s base (Amazon Link).
I buy a big piece of rind, cut it to size, and then freeze them in vacuum sealed bags. I also freeze any rind left over when I’m done with a hunk of Parmesan.
Not condensed!
As always, I turned to my trusty All-Clad (AMAZON LINK).



