This is a from-scratch meatball sub built around one pan and a homemade marinara that doubles as the braising liquid — so the meatballs finish cooking in the sauce and pick up flavor the whole time. You get 4 loaded subs in about 75 minutes, and most of that is hands-off simmering. If you want a filling dinner that doesn’t require much cleanup, this is a solid weeknight option.
The short version of why this works
Two things make this recipe work. First, browning the meatballs before they go into the sauce — even just 5 to 7 minutes in a hot skillet — builds a crust that holds them together during the long simmer and adds depth to the sauce as the fond releases. Skip that step and you get soft, pale meatballs that fall apart. Second, the meatballs finish cooking directly in the marinara for 25 minutes, which means the sauce thickens around them and they stay juicy instead of drying out in the oven. Both steps happen in the same skillet, which keeps the whole process manageable on a weeknight.
Ingredient notes
- Ground beef: The recipe calls for 500g. Aim for 80/20 fat content — leaner beef produces drier meatballs that are harder to keep together.
- Breadcrumbs: Fresh or panko both work, but panko gives a slightly lighter texture. Avoid seasoned breadcrumbs here since the Italian seasoning is already in the mix.
- Crushed tomatoes: A standard 400g (14 oz) can is what you need. San Marzano-style tomatoes are sweeter and lower in acid, which means you may not need the full teaspoon of sugar — taste before adding it.
- Sub rolls: Look for rolls with a sturdy crust. Soft sandwich rolls will turn soggy fast once the sauce goes in. A hoagie roll or a short baguette section works well.
- Mozzarella: Pre-shredded mozzarella melts fine here. Skip the fresh buffalo mozzarella — it releases too much water and makes the bread wet.
Storage and reheating
Store leftover meatballs and sauce together in an airtight container in the fridge for up to 4 days — keeping them combined prevents the meatballs from drying out. Reheat gently in a small saucepan over low heat, covered, for about 10 minutes, stirring once or twice. The meatballs and sauce also freeze well for up to 3 months; thaw overnight in the fridge before reheating. Assemble the subs fresh each time rather than storing assembled sandwiches, since the bread goes soft quickly once it’s loaded.
If something goes sideways
- Meatballs falling apart in the pan: The mixture was probably overworked or the pan wasn’t hot enough before they went in. Let the skillet get properly warm first, and once the meatballs are in, don’t move them for at least 90 seconds — they’ll release naturally when a crust forms.
- Sauce is too thin after simmering: Remove the lid for the last 8 to 10 minutes of cooking. The extra evaporation thickens it quickly without any other changes.
- Meatballs taste bland after cooking: The raw mixture is hard to taste-test safely. Before rolling all 16, cook a small pinch of the mixture in the skillet, taste it, and adjust salt or seasoning before you commit to the whole batch.
- Bread soggy before you finish eating: Toast the rolls a little longer than feels necessary — they need to be genuinely crisp, not just warm, to hold up against the sauce. Spooning the meatballs in just before serving also helps.
- Cheese not melting evenly: If the mozzarella is clumping or browning in spots, your oven may run hot. Cover the pan loosely with foil for the first 3 minutes, then uncover for the last 2 to get even melting without burning.
Meatball Subs With Homemade Marinara Sauce
Equipment
- Large mixing bowl
- 12-inch (30cm) skillet with lid
- Wooden spoon or silicone spatula
- Baking sheet
- Instant-read thermometer
Ingredients
- 1.1 lb ground beef 500g, preferably 80/20 for juicy, flavourful meatballs
- ½ cup breadcrumbs 30g, fresh or panko for best results
- ¼ cup parmesan cheese 25g, finely grated
- 1 large egg
- 2 cloves garlic minced
- 1 tsp Italian seasoning
- 1 tbsp olive oil for browning
- 1 pinch salt to taste
- 1 pinch freshly ground black pepper to taste
Marinara Sauce
- 2 tbsp olive oil
- 1 medium onion finely chopped
- 3 cloves garlic crushed
- 1 can crushed tomatoes 400g / 14oz
- 1 tsp sugar to balance acidity
- 2 tbsp fresh basil chopped, about 6-8 leaves
Assembly
- 4 medium sub rolls toasted
- 1 cup mozzarella cheese 115g, grated
Instructions
- In a large mixing bowl, combine the ground beef, breadcrumbs, parmesan cheese, egg, minced garlic, Italian seasoning, salt, and pepper. Mix until just combined, being careful not to overwork the meat.1.1 lb ground beef, 1/2 cup breadcrumbs, 1/4 cup parmesan cheese, 1 large egg, 2 cloves garlic, 1 tsp Italian seasoning, 1 pinch salt
- Roll the mixture into 16 equal-sized meatballs, about 1.5 inches each.
- Heat 1 tablespoon olive oil in a 12-inch (30cm) skillet over medium-high heat. Add the meatballs in a single layer and cook until browned on all sides, approximately 5-7 minutes. Remove from skillet and set aside on a plate.1 tbsp olive oil
- In the same skillet, add the olive oil for the marinara sauce. Sauté the onion until translucent, about 5 minutes. Add the crushed garlic and cook, stirring, for 30-60 seconds until fragrant.2 tbsp olive oil, 1 medium onion, 3 cloves garlic
- Stir in the crushed tomatoes and sugar, and bring to a low simmer. Return the meatballs to the skillet, cover, and simmer for 25 minutes or until the meatballs reach an internal temperature of 165°F / 74°C.1 can crushed tomatoes, 1 tsp sugar
- Before serving, stir fresh basil into the sauce and season with salt to taste.2 tbsp fresh basil, 1 pinch salt
- About 10 minutes before the meatballs are done simmering, preheat the oven to 180°C / 350°F (160°C fan-forced). Slice the sub rolls lengthwise, leaving them hinged, and place cut-side up on a baking sheet. Toast for 3-5 minutes until lightly golden.4 medium sub rolls
- Fill each roll with meatballs and sauce, then sprinkle with grated mozzarella cheese. Return to the oven until cheese is melted and bubbly, about 5 minutes.1 cup mozzarella cheese
Notes
Nutrition
FAQ
Can I make the meatballs and sauce ahead of time?
Yes — this is actually one of the better make-ahead dinners. Cook everything through the simmering stage, cool it, and refrigerate for up to 4 days. When you’re ready to eat, reheat on the stovetop, then assemble and melt the cheese in the oven as usual.
Do I have to use beef, or can I swap the protein?
Ground chicken or turkey works as a direct swap by weight. Keep in mind both are leaner than 80/20 beef, so the meatballs will be slightly firmer — don’t overwork the mix and don’t skip the browning step, or they’ll dry out.
My family doesn’t like chunks of onion. Can I skip it?
You can grate the onion on a box grater instead of chopping it — it essentially melts into the sauce during cooking and you won’t see or feel any pieces. The flavor stays, the texture doesn’t.
Can I use jarred marinara instead of making the sauce from scratch?
Yes, a 400g jar works as a straight substitute. Add it to the skillet after browning the meatballs, skip the onion and garlic sauté, and proceed with the simmer — you’ll save about 10 minutes.
How do I know when the meatballs are fully cooked through?
After 25 minutes of simmering, cut one open at the thickest point — there should be no pink. If you have an instant-read thermometer, the center should read 160°F (71°C).
Can I bake the meatballs instead of pan-frying them?
You can bake them at 200°C (400°F) for about 15 minutes before adding them to the sauce, but you’ll lose the fond in the skillet that gives the marinara extra depth. You’ll also need a second pan, which adds to cleanup.
More recipes to try
- Authentic Roman Carbonara
- Creamy Fettuccine Alfredo
- Elegant Chicken Marsala with Mushrooms
- Rustic Sourdough Focaccia with Rosemary and Sea Salt


















































