Golden spinach garlic stuffed meatballs with melted mozzarella and garlic butter sauce

Spinach Garlic Stuffed Meatballs with Mozzarella

The first time I cut into one of these spinach stuffed meatballs, the cheese stretched a full six inches from the plate to my fork. My nephew watched, eyes wide, fork frozen mid-air. That single bite — the savory crust, the molten center, the garlic butter pooling around the edges — turned what was supposed to be a regular Tuesday dinner into the kind of meal everyone asked about for weeks. The trick? It’s not magic. It’s three small habits I picked up after butchering more than a few batches early on. Today I’m walking you through every one of them so your first attempt lands beautifully, pull-apart cheese center and all.

Why you’ll love this dish

This is the kind of recipe that rewards a little care. The outside gets a deep brown crust from a hot skillet, the inside stays juicy because of the sealed spinach-garlic filling, and the mozzarella tucked in the middle keeps every bite moist long after the pan comes off the heat. No special equipment. Just a skillet, a bowl, and your hands. The spinach pulls double duty, too, adding a hit of vitamin K and folate.

These work for weeknight dinners when you need something that looks impressive but cooks in under an hour. They also hold up beautifully for small dinner parties — plate them over creamy polenta or buttered noodles and you’ve got a main that punches well above its prep time. And if you’re cooking for someone who loves cheesy stuffed meatballs but you’ve been burned by recipes where the cheese leaks straight through the meat, trust me on this — the spinach makes a real difference. It blocks moisture and helps the meat seal cleanly around the cube.

Step-by-step overview

The whole process moves in one direction with no waiting periods, which is part of what makes these so satisfying to cook. You wilt fresh spinach with garlic, squeeze it dry, and fold it into seasoned ground beef. Then you flatten each portion, tuck a mozzarella cube into the middle, and seal the meat around it like you’re wrapping a tiny gift. A hot skillet builds the crust. Butter and chicken broth finish the cooking gently so the cheese stays put. The garlic-butter sauce that develops in the pan becomes the final flourish. Total active time is around 25 minutes — and most of that is just shaping the meatballs.

What you’ll need

  • 1.5 lb (680 g) lean ground beef (90/10)
  • 5 oz (140 g) fresh spinach, roughly chopped
  • 5 cloves garlic, minced (divided: 3 for meatballs, 2 for sauce)
  • 1 large egg
  • 1/3 cup (40 g) grated Parmesan cheese
  • 1/3 cup (35 g) breadcrumbs (use gluten-free or almond flour for a low-carb / GF version)
  • 2 tbsp fresh parsley, chopped, plus extra for garnish
  • 1 tsp Italian seasoning
  • 3/4 tsp salt
  • 1/2 tsp black pepper
  • 6 oz (170 g) low-moisture block mozzarella, cut into 12 cubes (about 1/2 inch each)
  • 1 tbsp olive oil, for searing
  • 3 tbsp unsalted butter
  • 1/4 cup (60 ml) chicken broth
  • 1 tbsp chives or extra parsley, for garnish

A few smart swaps if you’re working with what’s in the fridge. Ground turkey (93/7) works in place of beef — the meatballs will be lighter but slightly drier, so add a tablespoon of olive oil to the mix. Fresh baby spinach is easiest, but if all you have is frozen spinach, thaw 5 oz and squeeze it hard before using. And if you’re going gluten-free, almond flour gives the cleanest result; oat flour works too but adds a slightly softer texture.

Step-by-step instructions for these spinach stuffed meatballs

Wilting fresh spinach with minced garlic in a skillet to make the meatball filling
  • Heat 1 tsp of the olive oil in a skillet over medium heat. Add the chopped spinach and 3 minced garlic cloves and cook 2-3 minutes until the spinach is fully wilted and smells fragrant. Transfer to a plate, let it cool, then squeeze out excess moisture with your hands so the meatballs don’t turn soggy.
Combining ground beef with cooled spinach garlic mixture, Parmesan, and breadcrumbs in a mixing bowl
  • In a large bowl, gently combine the ground beef, cooled spinach-garlic mixture, egg, Parmesan, breadcrumbs, parsley, Italian seasoning, salt, and pepper. Mix with your hands just until everything is combined — overmixing makes tough meatballs.
Shaping ground beef around mozzarella cubes to form stuffed meatballs on a tray
  • Divide the mixture into 12 equal portions. Flatten one in your palm, press a mozzarella cube into the center, then fold the meat fully around it. Roll into a smooth ball with no cracks or thin spots so the cheese stays sealed inside. Repeat for all 12.
Searing spinach stuffed meatballs in olive oil until browned on all sides in a skillet
  • Heat the remaining olive oil in the skillet over medium heat. Sear the meatballs in batches, turning, until browned on all sides — about 6-8 minutes total. They won’t be fully cooked yet, and that’s the point.
Spinach stuffed meatballs simmering in garlic butter broth sauce in a skillet
  • Reduce heat to medium-low. Add the butter and remaining 2 minced garlic cloves to the skillet and let the garlic sizzle 1 minute until it smells nutty. Pour in the chicken broth, return all meatballs to the pan, cover, and simmer 8-10 minutes until cooked through (internal temp 160°F / 71°C).
Plating spinach garlic stuffed meatballs with mozzarella, garnished with chopped parsley and chives
  • Spoon the garlic butter sauce over the meatballs, garnish with chopped chives and parsley, and serve hot over pasta, rice, or low-carb vegetables.

Recipe card

Spinach Garlic Stuffed Meatballs with Mozzarella

Spinach Garlic Stuffed Meatballs with Mozzarella

Juicy ground beef meatballs packed with sautéed spinach and garlic, hiding a melted mozzarella center and finished in a quick garlic butter pan sauce. Ready in 45 minutes for a comforting Italian-style dinner.

  • 25 minPrep
  • 20 minCook
  • 45 minTotal
  • 4Servings

Ingredients

  • 1.5 lb (680 g) lean ground beef (90/10)
  • 5 oz (140 g) fresh spinach, roughly chopped
  • 5 cloves garlic, minced (divided: 3 for meatballs, 2 for sauce)
  • 1 large egg
  • 1/3 cup (40 g) grated Parmesan cheese
  • 1/3 cup (35 g) breadcrumbs (or gluten-free / almond flour)
  • 2 tbsp fresh parsley, chopped (plus extra for garnish)
  • 1 tsp Italian seasoning
  • 3/4 tsp salt
  • 1/2 tsp black pepper
  • 6 oz (170 g) low-moisture block mozzarella, cut into 12 cubes
  • 1 tbsp olive oil, for searing
  • 3 tbsp unsalted butter
  • 1/4 cup (60 ml) chicken broth
  • 1 tbsp chives or extra parsley, for garnish

Instructions

  • Heat 1 tsp olive oil in a skillet over medium. Cook chopped spinach with 3 minced garlic cloves 2-3 minutes until wilted. Cool, then squeeze out moisture.
  • In a bowl, gently combine ground beef, cooled spinach-garlic, egg, Parmesan, breadcrumbs, parsley, Italian seasoning, salt, and pepper. Don’t overmix.
  • Divide into 12 portions. Flatten each, press a mozzarella cube into the center, and seal the meat fully around it. Roll smooth.
  • Heat remaining olive oil over medium. Sear meatballs in batches, turning, until browned all sides — 6-8 minutes total.
  • Reduce heat to medium-low. Add butter and remaining 2 minced garlic cloves; sizzle 1 minute. Add chicken broth, return meatballs, cover, simmer 8-10 minutes until 160°F internal.
  • Spoon garlic butter sauce over the meatballs, garnish with chives and parsley, and serve.

Nutrition (per serving)

  • 740Calories
  • 50 gProtein
  • 10 gCarbs
  • 49 gFat

Nutrition information is calculated using ingredient databases and is an estimate. Actual values may vary based on specific ingredients and brands used.

Best ways to enjoy these mozzarella stuffed meatballs

Plating these is half the fun. My personal go-to is a bed of buttered angel hair pasta with extra garlic butter sauce drizzled over the top — the noodles soak up everything and turn the dish into pure comfort. For something lighter, spoon the meatballs and sauce over creamy mashed cauliflower or zucchini ribbons sautéed in olive oil. Crusty bread on the side is non-negotiable in my house; you’ll want something to mop up that garlic butter pool at the bottom of the plate.

For drinks, a glass of Chianti or a light Pinot Noir matches the Italian seasoning and ground beef without overpowering the cheese center. If you’re skipping wine, sparkling water with a squeeze of lemon clears the palate between bites. A simple arugula salad with shaved Parmesan and lemon-olive oil dressing makes the plate feel finished without competing with the main. Or serve them over a tray of caramelized Brussels sprouts for something warm.

Storage and reheating tips

Leftovers keep well, which is part of why I make a double batch when guests are coming. Store cooled meatballs in an airtight container in the fridge for up to 4 days. Reheat gently in a covered skillet over medium-low with a splash of chicken broth — about 5 minutes — so the mozzarella warms back to that pull-apart texture. Microwaving works too, but the cheese can get rubbery, so go in 30-second bursts at 50% power.

For longer storage, freeze the cooked meatballs (without sauce) on a tray until firm, then transfer to a freezer bag. They keep up to 2 months. Thaw overnight in the fridge before reheating in fresh garlic butter sauce. Texture is best when you reheat with new sauce rather than freezing the sauce too — broth-based pan sauces can separate after freezing.

Pro chef tips

  • Use block mozzarella, not pre-shredded — pre-shredded carries anti-caking starch that prevents the smooth, stretchy melt you want.
  • Squeeze the cooled spinach hard. Wet spinach is the #1 reason stuffed meatballs fall apart in the pan.
  • Don’t overwork the meat mixture. Mix just until the ingredients are combined; overmixing develops the proteins and makes the meatballs dense and tough.
  • Roll the meat fully around the cheese with no thin spots or visible cracks. Even a small opening means a leaked mozzarella puddle on your skillet.
  • Get the skillet hot before adding the meatballs — a tepid pan means a steamed, gray exterior instead of a deep brown crust.
  • Don’t crowd the pan during searing. Work in two batches if needed; crowded meatballs steam instead of brown.
  • Use a meat thermometer if you have one. Internal temperature should hit 160°F (71°C); reading visual doneness is tricky here because you can’t cut one open to peek.

Recipe variations

There are a dozen directions you can take these once you’ve made them the standard way. For a low-carb or keto version, skip the breadcrumbs and use 2 tablespoons of almond flour instead — the texture stays remarkably close. If you’re feeding kids who turn their nose up at green things, blitz the cooked spinach in a mini food processor before folding it in; they’ll never spot it.

Want a richer sauce? Add 1/4 cup of heavy cream to the skillet along with the chicken broth and let it reduce for 2 minutes before returning the meatballs. For a tomato-forward version, swap the chicken broth for crushed tomatoes and simmer 3-4 minutes longer to thicken — that turns the dish into something closer to classic baked stuffed meatballs in red sauce, which you can finish in a 375°F oven for 5 minutes if you want a bubbling top.

Other smart swaps: ground turkey or chicken in place of beef for a leaner profile (add an extra tablespoon of olive oil to keep them juicy), provolone or fontina cubes in place of mozzarella for a sharper cheese center, or a pinch of red pepper flakes in the meat mixture if your crew likes a little heat. These high protein meatballs handle just about any swap you throw at them.

Common questions

How do you keep mozzarella from leaking out of stuffed meatballs?

Three things matter. First, use cold low-moisture block mozzarella cut into uniform 1/2-inch cubes — softer fresh mozzarella melts too quickly and will escape. Second, seal the meat completely around the cube so there are no cracks or thin spots before searing. Third, don’t crank the heat too high — medium for the sear, then medium-low for the simmer keeps the cheese melting evenly instead of bursting through.

What cheese is best for stuffing meatballs?

Low-moisture block mozzarella is the gold standard — it melts beautifully, stretches when you cut in, and stays put through cooking. Provolone, fontina, or a sharp white cheddar all work as substitutes if you want a stronger flavor. Avoid fresh mozzarella (too watery) and pre-shredded bagged cheese (anti-caking starch prevents that clean melt you’re going for).

What do you serve with spinach stuffed meatballs?

Buttered noodles, creamy polenta, mashed potatoes, or zucchini ribbons all soak up the garlic butter sauce beautifully. For a low-carb plate, try cauliflower mash or sautéed greens. A simple arugula salad and crusty bread round things out for a full Italian-style dinner — and the bread is essential for mopping up the sauce.

Can I bake these stuffed meatballs instead of pan-searing?

Yes. Arrange the assembled meatballs on a parchment-lined sheet pan and bake at 400°F (200°C) for 18-20 minutes, until they reach 160°F internally. You’ll lose some of the deep crust you get from searing, but the result is still excellent — and you can prepare the garlic butter sauce separately in a small skillet to spoon over the top. Baked stuffed meatballs are also more hands-off if you’re cooking other components at the same time.

Can I make spinach stuffed meatballs ahead of time?

Yes — assemble the raw stuffed meatballs and refrigerate them on a covered plate for up to 24 hours before cooking. They actually sear better when chilled, since the cheese stays solid longer in the pan. You can also fully cook them ahead and reheat in fresh garlic butter sauce when it’s time to serve, which is what I do for dinner parties.

Once you make these spinach stuffed meatballs a couple of times, they’ll find their way into your regular rotation — and probably onto your dinner-party shortlist too. The first cut into that melted cheese center is the kind of moment that turns a recipe into a tradition. Try them this week and let me know in the comments how the mozzarella behaved — I’m always curious to hear which sides you paired with them.