
This mozzarella-stuffed meatball recipe transforms ordinary dinner into something extraordinary. The combination of spinach, garlic, and melty cheese centers creates an irresistible bite that will have everyone at your table asking for seconds. I developed this recipe when looking to sneak more vegetables into my family's meals without sacrificing flavor.
I first made these meatballs for a Sunday family dinner, and they've become our most requested comfort food. The moment when someone cuts into a meatball and the cheese stretches out in perfect strands always brings smiles around the table.
Ingredients
- For the Spinach Mixture:
- Fresh baby spinach: Adds essential nutrients while blending beautifully with the meat. Look for bright, crisp leaves without any yellowing.
- Minced garlic: Provides aromatic depth. Choose firm bulbs with tight skin for the freshest flavor.
- Good quality olive oil: Helps wilt the spinach properly. Use extra virgin for best taste.
- For the Meatballs:
- Ground beef 80/20: Provides perfect fat content for juicy meatballs. The fat is crucial for flavor and texture.
- Ground pork: Adds tenderness and prevents the meatballs from becoming too dense. Ask your butcher for freshly ground.
- Soft bread crumbs: Bind everything together. Homemade from day-old bread works best.
- Large eggs: Provide structure. Farm fresh eggs with bright orange yolks boost flavor.
- A splash of milk: Adds moisture. Whole milk creates the best texture.
- Finely chopped garlic: Infuses the meat mixture with flavor. Fresh is non-negotiable here.
- Freshly grated Parmesan cheese: Contributes saltiness and umami. Grate it yourself for superior melt.
- Salt and freshly ground black pepper: Balance all flavors. Sea salt and coarse black pepper make a difference.
- Olive oil: For frying creates that beautiful initial crust. Use regular not extra virgin as it has a higher smoke point.
- Mozzarella cheese cubes: Create that magical melty center. Low moisture mozzarella works best for gooey results.
- For Serving:
- Raos marinara sauce: Complements without overwhelming. The quality of your sauce makes a huge difference.
- Pasta of your choice: Creates the perfect base. I prefer pappardelle or rigatoni to catch the sauce.
Step-by-Step Instructions
- Wilt the Spinach:
- Warm olive oil in a large skillet over medium heat until it shimmers. Add all the fresh spinach at once even though it will look like too much. Stir continuously as it wilts down to about 1/10 of its original volume typically taking 2 to 3 minutes. Add minced garlic just before the spinach is completely wilted and cook until you smell that wonderful garlic aroma but before it browns about 60 to 90 seconds more. The spinach should be bright green and completely soft.
- Prepare the Spinach Mixture:
- Transfer the cooked spinach and garlic to a cutting board and let it cool for about 5 minutes until you can handle it comfortably. Chop it thoroughly into small bits that will distribute evenly throughout the meatballs. Set aside and allow it to cool completely about 10 more minutes. Hot spinach would start cooking the meat prematurely.
- Preheat the Oven:
- Set your oven to 350°F and allow it to fully preheat while you prepare the meatballs. Position a rack in the middle of the oven for even cooking.
- Mix the Meat Base:
- In a large mixing bowl add ground beef ground pork bread crumbs eggs milk chopped garlic grated Parmesan salt and pepper. Use clean hands to gently combine the ingredients with a light touch just until everything is incorporated. Overmixing will make your meatballs tough and dense. The mixture should look uniform but still feel loose and tender.
- Incorporate the Spinach:
- Add the cooled chopped spinach mixture to your meat base. Use your fingers to fold and distribute it evenly throughout being careful not to compact the meat. You should see flecks of green distributed throughout the mixture.
- Form the Stuffed Meatballs:
- Scoop about 2 tablespoons of meat mixture and flatten it in your palm creating a small disc. Place a cube of mozzarella directly in the center. Fold the edges of the meat up and around the cheese being sure to completely seal it inside. Roll gently between your palms to form a perfect ball about 1.5 inches in diameter. Place on a baking sheet and repeat with remaining mixture creating approximately 32 meatballs.
- Brown the Meatballs:
- Heat olive oil in a large cast iron skillet until shimmering but not smoking. Place meatballs in the hot pan leaving space between each working in batches if necessary. Brown for about 2 minutes per side rotating to create a golden crust all around. This step creates flavor through caramelization not to cook them through.
- Add Sauce and Prepare for Baking:
- Pour marinara sauce around the browned meatballs in the skillet filling to about halfway up their sides. The sauce should be bubbling slightly at the edges. Cover the skillet tightly with aluminum foil ensuring a good seal to trap steam.
- Bake to Perfection:
- Transfer the covered skillet to your preheated oven and bake for 20 to 25 minutes. The meatballs are done when they reach an internal temperature of 165°F and the cheese inside has melted completely. When you cut one open the cheese should stretch and pull in long strands.
- Serve with Love:
- Spoon meatballs and sauce over prepared pasta arranging them attractively. For an extra special touch add a light sprinkle of freshly grated Parmesan and some torn basil leaves right before serving.

The mozzarella is truly the star ingredient here. I once tried substituting with another cheese and while still good nothing compares to that perfect stretch of genuine mozzarella when you cut into these meatballs. My daughter actually clapped the first time she saw the cheese pull from her meatball and now its a tradition to ooh and aah over the perfect cheese stretch at our table.

Recipe FAQs
- → Can I make these meatballs ahead of time?
Yes! These meatballs can be prepared ahead of time in several ways. You can mix and shape the meatballs, then refrigerate them (covered) for up to 24 hours before cooking. Alternatively, you can fully cook them, cool completely, and refrigerate for up to 3 days. Simply reheat in marinara sauce until warmed through.
- → What's the best way to freeze these meatballs?
For best results, freeze the meatballs after shaping but before cooking. Arrange them on a baking sheet so they're not touching, freeze until solid (about 2 hours), then transfer to a freezer bag or container. They'll keep for up to 3 months. When ready to use, thaw overnight in the refrigerator before browning and baking as directed.
- → Can I use different types of meat?
Absolutely! While the beef and pork combination creates ideal texture and flavor, you can substitute ground turkey, chicken, or even plant-based alternatives. Just note that leaner meats may produce slightly drier meatballs, so consider adding a bit more olive oil or an extra splash of milk to maintain moisture.
- → Why are my meatballs falling apart?
Meatballs typically fall apart because the mixture is either too wet or hasn't had enough binding time. Try adding breadcrumbs one tablespoon at a time until the mixture holds together better. Additionally, refrigerating the shaped meatballs for 30 minutes before cooking can help them firm up and maintain their shape during cooking.
- → What can I serve with these meatballs besides pasta?
These versatile meatballs are delicious over creamy polenta, mashed potatoes, or cauliflower rice for a lower-carb option. They also make excellent meatball subs on toasted rolls with melted provolone cheese. For a lighter meal, serve them alongside a crisp green salad and crusty bread for dipping in the sauce.
- → How do I know when the meatballs are fully cooked?
The most reliable method is using an instant-read thermometer to check that the internal temperature reaches 165°F (74°C). If you don't have a thermometer, cut one meatball in half - it should be completely cooked through with no pink remaining, and the cheese center should be fully melted and gooey.