July 12, 2026
Turkey Meatballs in Bright Marinara, Finished With a Ricotta Cloud
Subscribe
A 30-minute Italian comfort dinner rebuilt for protein: juicy 93/7 turkey meatballs kept tender with a grated-zucchini trick, seared and simmered in a quick homemade crushed-tomato marinara, over half whole-wheat spaghetti and half zucchini noodles, finished with a cool dollop of part-skim ricotta that melts into the sauce like cream for a fraction of the fat. Forty-nine grams of protein and nine grams of fiber, and it eats like a trattoria dinner, not a diet plate.
This is the dinner to make when you want a big bowl of spaghetti and meatballs but not the food coma that follows. The move is splitting the base between a modest tangle of real whole-wheat spaghetti and a generous pile of zucchini noodles, so you keep the carb satisfaction of pasta with the volume of vegetables, then crowning it with cold part-skim ricotta that melts into the hot sauce like cream while quietly adding nearly five grams of protein. The meatballs stay juicy because you fold grated, squeezed-dry zucchini right into the mix, which is the single best fix for the dry-turkey-meatball problem that sinks most lean meatballs.
I adapted this from Jennifer Segal's classic Turkey Meatballs in Marinara Sauce at Once Upon a Chef. Her version pan-sears the meatballs and finishes them in the sauce in one skillet, which is the technique worth stealing. The changes here are a smaller, protein-forward portion, the zucchini moisture trick, a lean homemade marinara instead of jarred, the half-pasta half-zoodle base, and the ricotta finish. The macros are mine, computed from USDA FoodData Central values for each ingredient.
Macros per serving (serves 2)
About 590 calories, 49g protein, 52g carbs (9g fiber), 24g fat.
Ground turkey at 93% lean runs roughly 150 calories, 18.7g protein, and 8.3g fat per 100g raw, so a five-ounce portion does most of the protein heavy lifting here. The ricotta finish and the parmesan in the mix add the rest, and the crushed-tomato base plus spinach and zucchini noodles bring the fiber and the volume that make it actually filling.
Ingredients
For the meatballs (makes about 10 small meatballs, 5 per serving):
- 10 oz (283g) raw 93% lean ground turkey
- 1 large egg
- 1/2 medium zucchini, grated on the large holes of a box grater, then squeezed nearly dry in a kitchen towel (about 1/2 cup packed before squeezing)
- 1/4 cup panko breadcrumbs
- 1/4 cup finely grated Pecorino Romano (Parmesan works)
- 2 cloves garlic, minced
- 1 tsp Italian seasoning (or 1/2 tsp dried oregano plus 1/2 tsp dried basil)
- 3/4 tsp kosher salt and 1/4 tsp black pepper
For the marinara and the bowl:
- 1 tsp olive oil (a nonstick pan lets you use a thin film and trim about 5 calories)
- 1 (14.5 oz) can crushed tomatoes
- 1/2 tbsp tomato paste (optional, for depth)
- 1 clove garlic, minced, for the sauce
- 1/2 tsp dried oregano and a pinch of red pepper flakes (optional)
- Salt and pepper to taste
- 2 cups baby spinach
- 2 oz dry whole-wheat spaghetti (1 oz per serving)
- 3 cups zucchini noodles (about 1 medium zucchini spiralized or julienned, 1.5 cups per serving)
- 1/3 cup part-skim ricotta (about 2 1/2 tablespoons per serving), for finishing
- Fresh basil, flaky salt, and extra Pecorino to finish
Steps
-
Grate the zucchini onto a clean kitchen towel, sprinkle lightly with salt, and let it sit 5 minutes while you gather the rest. Then twist the towel and squeeze out as much water as you can. You want it almost dry, so the meatballs bind instead of turning to soup.
-
In a large bowl, combine the turkey, egg, squeezed zucchini, panko, Pecorino, minced garlic, Italian seasoning, salt, and pepper. Mix with your hands just until uniform, about 30 seconds. Overmixing makes dense, tough meatballs, so stop the second everything is evenly distributed.
-
Roll the mixture into about 10 small meatballs, roughly golf-ball sized. Wetting your hands with cold water keeps them from sticking.
-
Heat the olive oil in a large nonstick or cast-iron skillet over medium heat until shimmering. Add the meatballs in a single layer with space between them, and let them sit undisturbed for 2 to 3 minutes to develop a brown crust on the bottom. Roll them to brown on the other sides, another 4 to 5 minutes total. They do not need to be cooked through yet.
-
While the meatballs brown, start the spaghetti in a pot of well-salted boiling water. Cook the 2 oz to al dente per the package time, then drain. Reserve a splash of the pasta water.
-
Push the meatballs to the edge of the skillet and add the minced garlic clove and red pepper flakes to the empty center, cooking 30 seconds until fragrant. Pour in the crushed tomatoes and tomato paste, add the dried oregano, and stir, scraping up the browned bits from the pan. That fond is free flavor. Nestle the meatballs back into the sauce, bring to a gentle boil, then reduce to a simmer and cook uncovered 10 to 12 minutes, turning the meatballs once, until they reach 165 F inside and the sauce thickens slightly.
-
In the last 2 minutes, drop the baby spinach into the sauce and stir until it wilts. Add the zucchini noodles to the skillet and toss for 60 to 90 seconds just until warmed through and barely softened. Zoodles turn to mush fast, so keep them crisp.
-
Divide the spaghetti and the saucy meatballs, zoodles, and spinach between two bowls. Dollop half the cold ricotta onto each bowl so it sits on top and melts slightly into the hot sauce. Finish with torn fresh basil, flaky salt, and a shower of Pecorino.
Make it better
The grated-zucchini trick is the lever worth remembering. Lean turkey breast has almost no fat to keep meatballs moist, so they turn dry and rubbery the moment they hit the pan. Grating zucchini and squeezing it dry before folding it in plants little pockets of moisture that release as the meatball cooks, keeping the inside tender while adding volume and a gram of fiber for almost no calories. It works in any lean-ground-meat meatball, turkey or chicken or 93/7 beef. If you want to push the macros even leaner, swap to 99% lean ground turkey breast and lean on this trick to carry the juiciness. You will land closer to 540 calories and 54g protein per serving with the fat under 16g. The trade is a slightly less beefy flavor, which the Pecorino and the ricotta cloud mostly cover.
Batch prep
This recipe doubles cleanly and the meatballs are one of the best batch-prep items in the rotation. Mix and roll a double batch of meatballs, then freeze half raw on a parchment-lined sheet pan until solid and bag them. Sear them straight from frozen, adding about 5 minutes to the simmer. Cooked meatballs in their sauce also hold 3 days in the fridge and reheat gently on the stovetop with a splash of water. Make the full marinara even if you are cooking for one, it becomes the next day's lunch over zoodles with a fresh ricotta dollop.
Want the next one?
Every new The High-Protein Kitchen issue by email. One tap to unsubscribe.