Classic Meatball Sandwiches with Gooey Mozzarella
A classic meatball sandwich is a hearty, satisfying meal that comes together with simple ingredients. The meatballs are juicy and tender, the sauce is rich and garlicky, and melted mozzarella ties it all together.

You can use store-bought sauce and rolls to speed things up, but making the meatballs from scratch is worth the extra few minutes. They stay moist and flavorful, soaking up just enough sauce without falling apart.
What Makes These Sandwiches So Good
The meatballs have a light, tender texture. The secret is soaking fresh breadcrumbs in milk instead of using dry ones, which keeps them moist without adding heft.
A quick sear builds a deep crust, then they finish cooking right in the sauce. That means every bite gets a savory, caramelized edge and a soft, saucy center.
I like to use a sturdy hoagie roll that holds up to the sauce and pool of melted cheese. Provolone or whole-milk mozzarella melts into every nook, so the sandwich is rich but never greasy.
Ingredients

- 1 lb ground beef, 80/20: the fat keeps the meatballs juicy.
- ½ cup fresh breadcrumbs: from soft white bread, soaked in milk for tenderness.
- ¼ cup whole milk: to moisten the breadcrumbs.
- 1 large egg: helps bind the mixture.
- 2 cloves garlic, minced: adds savory depth.
- ¼ cup grated Parmesan: brings a salty, nutty note.
- 2 tbsp chopped fresh parsley: or 2 tsp dried.
- 1 tsp salt: brings out the meaty flavor.
- ½ tsp black pepper: a little warmth.
- 2 tbsp olive oil: for searing the meatballs.
- 2 cups marinara sauce: homemade or a quality jarred brand.
- 4 hoagie rolls or Italian sub rolls: sturdy enough to hold the filling.
- 8 oz sliced mozzarella: whole-milk melts best.
- Fresh basil leaves: optional, for garnish.
Variations / Substitutions
- Meat blend: use half ground turkey for a slightly richer, more tender meatball.
- Cheese swap: provolone or smoked mozzarella adds a sharp bite.
- Dairy-free: omit the Parmesan and use a plant-based cheese alternative.
- Herb switch: substitute dried oregano or basil for the parsley, or add a pinch of fennel seed.
- Spicy kick: stir ½ tsp red pepper flakes into the sauce.
- If you love this, try my Italian Meatball Soup.
How to Make Classic Meatball Sandwiches
Step 1: Mix the Meatball Mixture

Place the ½ cup breadcrumbs and ¼ cup milk in a large bowl and let them sit for 5 minutes, until the bread is completely soft. Then add the 1 lb ground beef, 1 egg, 2 minced garlic cloves, ¼ cup Parmesan, 2 tbsp parsley, 1 tsp salt, and ½ tsp pepper. Use your hands to gently mix everything together until just combined.
The mixture will feel wet but should hold together when pressed. Stop mixing once no streaks of egg or cheese remain, overworking makes the meatballs tough.
Step 2: Shape and Sear the Meatballs

Roll the mixture into 12 to 16 golf ball size portions. Heat the 2 tbsp olive oil in a large skillet over medium-high heat. Work in batches so the pan isn’t crowded, and brown the meatballs on all sides, about 6 to 8 minutes total per batch. Transfer the browned meatballs to a plate.
You’re not cooking them through here. The high heat just builds a deep, caramelized crust that adds a layer of flavor while the sauce finishes the job.
Step 3: Simmer the Meatballs in Sauce

Pour the 2 cups marinara sauce into the same skillet, scraping up any browned bits from the bottom. Return all the meatballs and spoon sauce over them. Bring the sauce to a gentle simmer, then reduce the heat to low, cover, and cook for 25 to 30 minutes. The meatballs are done when an instant-read thermometer reaches 160°F at the center.
The sauce will thicken slightly and the meatballs soak up the garlicky richness. Stir them gently once halfway through so they cook evenly and don’t stick.
Step 4: Toast the Rolls

While the meatballs simmer, position an oven rack about 6 inches from the broiler and preheat the broiler. Split the 4 rolls and place them cut side up on a baking sheet. Broil for 1 to 2 minutes, just until the edges turn pale gold. Lay the sliced mozzarella over the bottom halves and broil another 1 to 2 minutes until the cheese melts and bubbles.
Keep a close eye on them. The broiler works fast, and you want toasted rolls with a little crunch, not charred edges.
Step 5: Pile and Serve the Sandwiches

Use a slotted spoon to lift the meatballs from the sauce and arrange 3 or 4 on each cheesy roll bottom. Ladle a spoonful of extra sauce over them, then close the sandwich. Top with fresh basil leaves if you like, and serve right away.
Expect sauce to trickle down the sides. A pile of napkins is part of the experience, and a sign of a properly loaded sandwich.
Tips for the Best Meatball Sandwiches
- Choose a sturdy roll with a slight chew, like a classic hoagie or Italian sub roll. Soft, airy bread will turn mushy under the sauce.
- After the meatballs finish simmering, turn off the heat and let them rest in the covered pan for 5 minutes. They become even more tender during that short stand.
- For an extra cheesy top, add a second slice of mozzarella over the meatballs, then return the open sandwich to the broiler for 30 seconds to melt it.
- Use a slotted spoon when pulling the meatballs from the sauce. A little extra sauce is great, but too much soaks the bread before you take the first bite.
Meatball simmer times by size:
| Shape (approximate) | Simmer Time After Searing |
|---|---|
| Small (1-inch, 1 tbsp) | 20 to 22 minutes |
| Medium (1½-inch, 2 tbsp) | 25 to 30 minutes |
| Large (2-inch, 3 tbsp) | 30 to 35 minutes |
Storing and Reheating Leftovers
- Refrigerate: store the meatballs and sauce together in an airtight container for up to 4 days. Keep the bread separate so it doesn’t get soggy.
- Reheating: warm the meatballs and sauce gently in a covered skillet over low heat, stirring occasionally, until heated through. Toast fresh rolls and assemble just before eating.
- Serve Cold: these sandwiches are best hot, so a cold leftover isn’t recommended.
What to Serve With Classic Meatball Sandwiches
A simple arugula salad with lemon vinaigrette cuts through the richness and adds a bright, crisp contrast to the saucy meatballs. Oven-baked potato wedges are another classic partner, and you can slide them onto the rack right before the rolls go under the broiler so everything finishes together. If you want something even lighter, roasted broccoli with garlic and a squeeze of lemon balances the meal without extra heaviness.
Frequently Asked Questions
Can I use ground turkey instead of beef?
Yes, but ground turkey can dry out faster. Add an extra egg yolk or a tablespoon of ricotta to the mixture to help keep the meatballs moist.
Can I make the meatballs ahead and freeze them?
Freeze cooked meatballs right in the sauce for up to 3 months. Thaw overnight in the fridge, then reheat gently on the stove. You can also shape raw meatballs and freeze them on a tray, but they hold together best if you cook them first.
My meatballs fell apart in the sauce. What went wrong?
They likely needed a little more binder. Make sure the breadcrumbs are thoroughly soaked in the milk and that the mixture is cold when you shape it. If it feels loose, add another egg yolk or an extra tablespoon of grated Parmesan.
What’s the best cheese for meatball subs?
Low-moisture mozzarella and provolone melt smoothly without releasing water, which can make the bread greasy. Avoid fresh mozzarella packed in water, as it pools liquid under the broiler.

Classic Meatball Sandwiches Recipe
Ingredients
Method
- Soak the breadcrumbs and milk in a large bowl for 5 minutes. Add the beef, egg, garlic, Parmesan, parsley, salt, and pepper. Mix gently with your hands until just combined.
- Shape the mixture into 12 to 16 golf ball size meatballs. Heat the olive oil in a large skillet over medium-high heat. Brown the meatballs in batches on all sides, about 6 to 8 minutes per batch. Transfer to a plate.
- Pour the marinara into the same skillet, scraping up browned bits. Return the meatballs, spoon sauce over them, and bring to a simmer. Reduce heat to low, cover, and cook until the meatballs reach 160°F, 25 to 30 minutes.
- Meanwhile, preheat the broiler. Split the rolls and place them cut side up on a baking sheet. Broil until lightly golden, 1 to 2 minutes. Top with mozzarella and broil until melted, another 1 to 2 minutes.
- Use a slotted spoon to place 3 or 4 meatballs on each roll bottom. Ladle a little sauce over them, close the sandwich, and serve immediately with fresh basil if desired.
