This baked ziti combines ground lamb meatballs, two bunches of fresh spinach, marinara, and bocconcini into a single baking dish that covers protein, vegetables, and starch in one go. The lamb brings a richer, more distinctive flavor than beef, and the bocconcini melts into soft pockets rather than a uniform cheese crust. At 912 calories per serving for four people, it genuinely does not need anything else on the table.
Why this recipe works
Two things make this recipe reliable. First, browning the meatballs in a skillet before they go anywhere near the oven builds a crust that holds them together during baking — skip that step and they tend to break apart in the sauce. Second, the spinach goes in raw with the marinara and finishes cooking in the oven rather than being pre-wilted. That keeps it from turning grey and waterlogged, and it releases just enough moisture to loosen the sauce as the pasta absorbs it. The 25–30 minute bake at 350°F is long enough to melt the bocconcini fully and let the edges bubble without drying out the pasta underneath.
Ingredient notes
- Ground lamb: Lamb at 80/20 fat content works best here — leaner ground lamb can produce dry meatballs. If your butcher only has very lean lamb, add an extra tablespoon of oil to the meatball mix.
- Bocconcini: These are small fresh mozzarella balls packed in water. Drain and pat them dry before adding — excess water on the surface can make the top of the bake watery. Low-moisture shredded mozzarella is a workable substitute if bocconcini is unavailable, though you lose the soft melted pockets.
- Two bunches of spinach: This looks like a lot raw but cooks down significantly. Flat-leaf spinach is specified; curly spinach holds more water and can make the sauce thinner.
- Dry red wine: A quarter cup is a small amount — it deglazes the pan and adds depth to the sauce. Any dry red you would drink works. Skip the garnish of extra parsley and basil at the end — not worth the extra dish when the herbs are already cooked into the sauce.
Troubleshooting
- Meatballs falling apart in the skillet: The egg and breadcrumbs are the binders. If the mix feels too wet to hold a shape, refrigerate it for 15 minutes before rolling. Handle the meatballs minimally while browning — let them release naturally from the pan before turning.
- Pasta turns mushy after baking: Cook the ziti to firm al dente, not fully cooked. It will continue cooking in the oven. If the package says 11 minutes, pull it at 8–9.
- Watery sauce in the finished dish: This usually comes from undrained bocconcini or spinach that was rinsed but not dried. Pat both dry before they go in. If the assembled dish looks very loose before baking, give it an extra 5 minutes uncovered.
- Cheese browns too fast before the center is hot: Cover the dish with foil for the first 15 minutes, then uncover for the remaining 10–15 to get the melted top without burning the cheese.
- Meatballs not reaching safe temperature: Ground lamb must reach an internal temperature of 160°F (71°C). If the meatballs are large or packed tightly, check one in the center of the dish with an instant-read thermometer before serving.
Make-ahead notes
You can assemble the entire dish up to 24 hours ahead, cover it tightly, and refrigerate before baking. Add 10 extra minutes to the bake time if going straight from cold. Leftovers keep well in the fridge for up to 3 days — reheat covered in a 325°F oven for 20 minutes or in the microwave with a splash of water added to prevent the pasta from drying out. For freezing, bake the dish first, cool it completely, then freeze in portions for up to 2 months. Thaw overnight in the fridge before reheating. Freezing before baking is not recommended here because the bocconcini texture suffers significantly after freezing raw.

Meatball and Spinach Baked Ziti with Lamb & Bocconcini
Equipment
Ingredients
- 8 ounces ziti pasta - 225g
1 pound ground lamb - minced lamb, 450g
½ small onion - chopped
2 cloves garlic - chopped
1 large egg
1 tablespoon canola oil - or other neutral oil- ¼ cup dry red wine - 60ml
- 24 ounces marinara sauce - 680g, store-bought or homemade
- ¼ cup plain breadcrumbs - 30g
1 teaspoon kosher salt - to taste
½ teaspoon ground black pepper - to taste- 3 tablespoons fresh flat-leaf parsley - chopped, plus more for garnish, 10g
- 3 tablespoons fresh basil - chopped, plus more for garnish, 10g
- 10 ounces fresh flat-leaf spinach - roughly chopped, 280g
- 8 ounces bocconcini - fresh mini mozzarella balls, 225g
Instructions
- Preheat the oven to 350°F / 175°C (160°C fan-forced) and grease a 9×13 inch (23x33cm) baking dish.
- In a large pot of boiling salted water, cook the ziti until al dente according to package directions (usually 9–11 minutes). Drain and set aside.8 ounces ziti pasta
- In a large mixing bowl, combine the ground lamb, breadcrumbs, chopped onion, garlic, egg, ½ teaspoon black pepper, and 1 teaspoon kosher salt. Mix until just combined — do not overwork. Shape into 16 meatballs, roughly 1½ inches (4cm) each.1 pound ground lamb, ¼ cup plain breadcrumbs, ½ small onion, 2 cloves garlic, 1 large egg, ½ teaspoon ground black pepper, 1 teaspoon kosher salt
- Heat oil in a large skillet over medium heat. Add the meatballs in a single layer (work in batches if needed to avoid crowding) and cook, turning occasionally, until browned on all sides, about 8 minutes. Transfer to a plate.1 tablespoon canola oil
- With the skillet still over medium heat, pour in the red wine and use a wooden spoon to scrape up the browned bits from the bottom of the pan. Let the wine simmer for 1–2 minutes until slightly reduced.¼ cup dry red wine
- Stir in the marinara sauce, basil, spinach, and parsley. Return the browned meatballs to the skillet and bring everything to a gentle simmer. Remove from heat and toss with the drained pasta.24 ounces marinara sauce, 3 tablespoons fresh basil, 10 ounces fresh flat-leaf spinach, 3 tablespoons fresh flat-leaf parsley
- Transfer the mixture to the greased 9×13 inch (23x33cm) baking dish. Tear or scatter the bocconcini over the top. Bake at 350°F / 175°C for 25–30 minutes until the cheese is melted and the edges are bubbling. Remove from the oven and let stand for 10 minutes before serving. Garnish with extra chopped parsley and basil.8 ounces bocconcini
Notes
Nutrition
Frequently asked questions
Can I use a different ground meat instead of lamb?
Yes — ground beef works well and is the most direct swap. Ground pork is also fine, though it produces a milder flavor; just make sure either reaches 160°F (71°C) internal temperature.
Do I have to use ziti, or can I substitute another pasta shape?
Penne or rigatoni are the most practical substitutes because their ridges and tubes hold sauce similarly to ziti. Avoid thin pasta like spaghetti — it does not hold up to baking.
How do I know when the meatballs are fully cooked through?
Ground lamb must reach 160°F (71°C) at the center. After the full bake, check the largest meatball with an instant-read thermometer — the oven time is sufficient for standard-sized meatballs but verify if yours are larger than average.
Can I use frozen spinach instead of fresh?
You can, but you must thaw it completely and squeeze out as much water as possible before adding it. One 10-ounce package of frozen spinach roughly replaces two bunches of fresh.
Is the red wine necessary, or can I leave it out?
You can leave it out. Replace it with an equal amount of beef or chicken stock to still deglaze the pan and pick up the browned bits, which carry a lot of flavor.
Can I make this dish with fewer calories per serving by adjusting portions?
The recipe serves 4 at 912 calories — serving 6 instead brings each portion closer to 600 calories without changing the recipe at all. The dish is substantial enough that smaller portions still feel complete.
Try these next
- Spicy Calabrian Lamb Ragù
- Lamb Spinach Curry Delight
- Beef Ricotta Lasagna Rolls
- Creamy Beef Spinach Pasta










