Makes 2 big sandwiches | Prep Time: 20 / Cook Time: 35 minutes
A cheesy meatball sub recipe piled with cheese-stuffed meatballs, a layer of melted provolone cheese, then smothered with a homemade roasted tomato sauce. This recipe makes about ten cheese-stuffed meatballs, perfect for two large meatball subs, and comes together in about an hour.
These cheesy stuffed meatball subs are SO perfect for a cozy night in. I stuffed little cubes of Havarti cheese inside homemade meatballs, baked them, threw them under the broiler until crispy, then loaded them into squishy toasted onion buns and finished them with melted provolone cheese and a homemade roasted tomato sauce. Like, yeah. They’re SO good!! I designed this recipe to make two subs with five meatballs each. So they’re pretty serious sandwiches, and totally worth making. You could also make them into sliders for smaller appetites! These take about an hour to make, but they’re worth it!

If you’re like, “this sounds like a lot of work”, I promise it really isn’t! For the homemade tomato sauce, we’ll toss some cherry tomatoes, garlic, and fresh thyme leaves with olive oil, salt, and a little cracked black pepper – then pop them into the oven to start roasting while we make the meatballs. Then we’ll make the meatball mixture, form the balls, pop some little cheese cubes into them, and toss them into the same oven with the tomatoes so everything bakes together. (The tomatoes need to bake a little longer than the meatballs, so they all get done around the same time.) When everything is done, we’ll let the provolone cheese melt on top of the meatballs while we toss the tomatoes into a blender to make the sauce. Everything comes together around the same time, and makes a meaty, cheesy, little dreamboat of a sub sandwich. Note: Marinara sauce is a great substitute for the roasted tomato sauce if you don’t feel like making it!
Ingredients
For the Roasted Tomato Sauce:
- 1 heaping cup Cherry Tomatoes (or grape, or chopped heirloom tomatoes)
- 1 tbsp. Olive Oil
- Pinch of Kosher Salt + Cracked Black Pepper
- 2-3 sprigs Fresh Thyme
- 2-3 cloves Garlic, smashed
- 3-4 leaves Fresh Basil, roughly chopped
- 1 tsp. Balsamic Vinegar, optional
For the Meatballs:
- 3 oz. Havarti Cheese (or Mozzarella)
- 1 Large Egg
- 1 tbsp. Whole Milk
- 8 oz. Italian Sausage (mild or spicy)
- 1/3 cup Panko Breadcrumbs (half toasted for depth)
- 1/4 cup finely grated Parmesan Reggiano Cheese
- 1/2 tsp Italian Seasoning
- 1/4 tsp Garlic Powder
- 1/4 tsp Onion Powder
- 1/4 tsp Sea Salt (I use 1/2 tsp. Diamond Crystal Kosher Salt)
- 1/4 tsp freshly cracked Black Pepper
For the Sandwiches:
- 2 Onion Sub Buns (or any hoagie rolls / sub rolls)
- 2 slices Provolone Cheese (or Havarti)
- Extra grated Parmesan and/or Fresh Basil for garnish (optional)
Ingredient Notes & FAQs
- Italian Sausage: Mild or spicy ground Italian sausage is perfect for these meatballs; just use your preference. Chicken sausage also works, but you may need to double the seasoning (garlic powder / onion powder / Italian seasoning). Most chicken sausage comes in links, so just remove the sausage from the casing for these meatballs. Since we’re only using eight ounces, you can use the other eight ounces in this Small Batch Spicy Sausage Rigatoni!
- Can I use something besides Havarti Cheese? Of course! Havarti tastes richer than mozzarella, but low-moisture mozzarella cheese is a great backup if needed. Really, any melty cheese, like Pepper Jack or Monterey Jack, would work!
- What about Provolone? Just regular slices of provolone are all you need! If you’re feeling fancy, aged provolone or smoked provolone are awesome flavor boosters in this sandwich, but I just made them with regular provolone! However, if you want to be more cost-effective (and don’t have a plan for the havarti besides this recipe), slice the havarti and use it instead of provolone to melt over the meatballs, as well as stuffing them.
- Panko Breadcrumbs: Italian seasoned bread crumbs or plain breadcrumbs are great substitutes for panko! If you want to get REALLY fancy here, toast the panko breadcrumbs in a little olive oil before adding them to the meatballs. It brings a nutty, deeper flavor to them.
- Basil: Basil is optional – the sauce is so great without it, so don’t stress if you don’t have any. But if you’re like me, and have sooo much basil on hand during the summer months, grab a few leaves to toss into the sauce!
This recipe is small batch by design (to make two sub sandwiches), but it can easily be doubled or tripled if needed. If you have a family to feed or you want some extra meatballs to enjoy later in the week, there is a slider bar down in the recipe card (at the bottom of this post) that you can slide to adjust to the amount of servings you need.
Directions
Step One: Roast the Tomatoes. Place the cherry tomatoes, smashed garlic cloves, and thyme sprigs on a small rimmed baking sheet (I use a these small ones that are about 9″ x 7″(ish) inches). Drizzle with a good glug of olive oil, and sprinkle with a generous pinch of salt and a couple cracks of fresh black pepper. Toss to coat everything in oil/salt/pepper, then pop the baking sheet into the preheated oven and set a timer for 15 minutes.


Step Two: Prep the Cheese Cubes. First, preheat the oven to 375 F. Cut the cheese into 20 little cubes, each about 1/2″ in size. Transfer them onto a little plate, then pop the plate in the freezer while you prepare everything else.

Step Three: Make the Meatballs. In a small glass mixing cup, whisk the egg and milk together until well blended. Set aside. In a large mixing bowl, combine the Italian sausage, Panko breadcrumbs, Parmesan cheese, Italian seasoning, garlic powder, onion powder, salt, and pepper. Use your hands to gently mix everything together until mostly combined (don’t overmix it though – I still had some rogue breadcrumbs that hadn’t quite been mixed in yet!) Pour the egg/milk mixture into the bowl, then use your hands to mix everything together again until very well combined.





Step Four: Form the Meatballs. Line a rimmed baking sheet with parchment paper (I use a quarter sheet pan for this – it’s about 9″ x 13″). Scoop about 2 tablespoons of the meatball mixture out of the bowl (a #40 cookie scoop is perfect for this – it’s a 2 tbsp. / 1 oz. scoop!). Flatten it into a disc, then place two cheese cubes in the center. Gently form the meatball mixture around the cheese cubes, enclosing them in the center and forming a meatball. Place the meatballs onto the prepared baking sheet once they’re formed, and repeat with the remaining meatball mixture and cheese. You should have 9-10 meatballs.




Step Five: Bake the Meatballs. Around this time, the 15 minutes timer that you set for the roasted tomatoes should be going off. Keep the tomatoes in the oven, and also pop the meatballs into the oven, then set a new timer for 20 minutes. (The tomatoes should roast for a total time of about 35 minutes, and the meatballs about 20 minutes).


Step Six: Toast the Buns. While the tomatoes and meatballs bake, toast the sub buns, cut side down, in a large, nonstick pan over medium-high heat for about 2-3 minutes until golden brown and crispy. Set aside.
Step Six: Make the Tomato Sauce. Once the tomatoes are roasted and blistered, discard the thyme sprigs. Carefully transfer the roasted tomatoes, garlic cloves, and any juices from the baking sheet into a blender. Add fresh basil (if using), and one teaspoon of balsamic vinegar. Blend until smooth, or to your desired consistency. Set aside.



Step Seven: Build the Subs. Spoon a couple of spoonfuls of tomato sauce over the bottom of each bun. Place 4-5 meatballs onto the bottom bun, directly on top of the tomato sauce. Cover each row of meatballs with one slice of provolone cheese, torn in half, to cover the meatballs entirely. Pop the sandwiches back into the warm oven for a few minutes to melt the cheese. Carefully transfer the sandwiches to plates, then spoon more roasted tomato sauce directly on top of the melted cheese before serving. Garnish with grated parmesan cheese and chopped fresh basil, if desired.





Recipe Tips & Tricks
- Freeze the Havarti: This helps it stay in the middle of the meatball, and also helps keep it from leaking out during baking. (Mine got a little warm since I was taking photos … but I actually liked the cheese coming out of them!)
- Use a scoop for even meatballs: I use a “40” cookie scoop, that is about two tablespoons, or one ounce.
- Blend the sauce smooth: Use a blender or immersion blender for that velvety tomato finish.
- Broil to finish: After layering provolone, broil for 1โ2 minutes for maximum melty-ness and browning.
Ways to Customize this Recipe
- Add crushed red pepper flakes to the sauce or meatball mixture for some heat.
- Swap Havarti cubes with mozzarella or fontina cheese.
- Try ciabatta rolls instead of onion buns!
- Spread a layer of garlic butter onto the buns before toasting them. This adds even more flavor! (You’ll spread it onto the cut side of the bun, then still toast it cut side down to melt the butter.)
Just FYI, my entire website is packed with small batch recipes! If you’re often cooking for one or two people, feel free to sign up for my weekly newsletter. I only send one newsletter each week, but it’s packed with four small batch recipes, as well as a few tips and tricks for you.
How to Store + Reheat
- For the Meatballs: Let the meatballs cool completely, then store in an airtight container in the refrigerator for up to 3 days. Reheat in a low oven or covered in the microwave.
- For the Sauce: Store in the refrigerator in an airtight container for up to 5 days. Reheat in a nonstick saucepan over low heat until warmed through, or in a covered bowl in the microwave for 20-30 seconds.
- For Leftover Sandwiches: Assembled sandwiches are best enjoyed fresh, but leftovers can be wrapped in foil and reheated in the oven at 325ยฐF until warmed through.
More Small Batch Sandwiches
- These easy Turkey + Pesto Grilled Cheese Sandwiches (makes 2 sandwiches)
- The BEST Ultimate BLT Sandwich (makes 2 sandwiches)
- My SUPER popular Chicken Philly Sandwiches (makes 2 sandwiches)
- A fall-ish inspired Chicken Salad Croissant Sandwich recipe (makes 2 servings)
Let me just say: this is not your average meatball sub. The combo of roasted tomato sauce, savory + cheesy meatballs, and toasted onion buns is just … SO good. This makes a killer date-night meal because itโs cozy and impressive without being too much work (I really promise you that it’s not intimidating!)
So whether you’re cooking solo, with a partner, or just making dinner for two because leftovers are dangerous when cheese is involved, this oneโs a keeper. Big flavor, minimal effort. If you want to make more than two sandwiches, there is a little slider bar in the recipe card below (near โservingsโ). Slide that bar to adjust the amount you want to make, and the ingredients will automatically adjust for you!
If you make these Cheesy Stuffed Meatball Subs and love them, please leave a comment and / or star rating below! You can also share them on Instagram and tag me so we can connect and be *friends*! Also, if you have any questions about the ingredients or how to make them, send me an email so I can help out.
xx Sara

Havarti Stuffed Meatball Subs with Roasted Tomato Sauce
Ingredients
For the Roasted Tomato Sauce:
- 1 cup cup Cherry Tomatoes (or grape tomatoes, or chopped heirloom tomatoes)
- 1 tbsp. Olive Oil
- pinch Kosher Saltย +ย Cracked Black Pepper
- 2-3 sprigs Fresh Thyme
- 2-3 cloves Garlic smashed
- 3-4 Fresh Basil Leaves roughly chopped
- 1 tsp. Balsamic Vinegar
For the Meatballs:
- 3 oz. Havarti Cheese or mozzarella
- 1 Large Egg
- 1 tbsp. Whole Milk
- 8 oz. Ground Italian Sausage mild or spicy
- 1/3 cup Panko Breadcrumbs
- 1/4 cup finely grated Parmesan Cheese
- 1/2 tsp. Italian Seasoning
- 1/4 tsp. Garlic Powder
- 1/4 tsp. Onion Powder
- 1/4 tsp. Sea Salt or 1/2 tsp. Diamond Crystal Kosher Salt
- 1/4 tsp. freshly cracked Black Pepper
For the Sandwiches:
- 2 Onion Sub Buns or any hoagie / sub bun
- 2 slices Provolone Cheese
- extra grated Parmesan Cheese + Fresh Basil for garnish (optional)
Instructions
- Roast the Tomatoes.ย Place 1 cup cup Cherry Tomatoes, 2-3 cloves Garlic, and 2-3 sprigs Fresh Thyme on a small rimmed baking sheetย (I use a these small ones that are about 9โณ x 7โณ(ish) inches). Drizzle with 1 tbsp. Olive Oil, and sprinkle with a generous pinch Kosher Saltย +ย Cracked Black Pepper. Toss to coat everything in oil/salt/pepper, then pop the baking sheet into the preheated oven and set a timer for 15 minutes.
- Prep the Cheese Cubes.ย First, preheat the oven to 375 F. Cut 3 oz. Havarti Cheese into 20 little cubes, each about 1/2โณ in size. Transfer them onto a little plate, then pop the plate in the freezer while you prepare everything else.
- Make the Meatballs.ย In a small glass mixing cup, whisk 1 Large Egg and 1 tbsp. Whole Milk together until well blended. Set aside. In a large mixing bowl, combine 8 oz. Ground Italian Sausage, 1/3 cup Panko Breadcrumbs, 1/4 cup finely grated Parmesan Cheese, 1/2 tsp. Italian Seasoning, 1/4 tsp. Garlic Powder, 1/4 tsp. Onion Powder, 1/4 tsp. Sea Salt, and 1/4 tsp. freshly cracked Black Pepper. Use your hands to gently mix everything together until mostly combinedย (donโt overmix it though โ I still had some rogue breadcrumbs that hadnโt quite been mixed in yet!)ย Pour the egg/milk mixture into the bowl, then use your hands to mix everything together again until very well combined.
- Form the Meatballs.ย Line a rimmed baking sheet with parchment paperย (I use a quarter sheet pan for this โ itโs about 9โณ x 13โณ).ย Scoop about 2 tablespoons of the meatball mixture out of the bowlย (a #40 cookie scoop is perfect for this โ itโs a 2 tbsp. / 1 oz. scoop!). Flatten it into a disc, then place two cheese cubes in the center. Gently form the meatball mixture around the cheese cubes, enclosing them in the center and forming a meatball. Place the meatballs onto the prepared baking sheet once theyโre formed, and repeat with the remaining meatball mixture and cheese. You should have 9-10 meatballs.
- Bake the Meatballs.ย Around this time, the 15 minutes timer that you set for the roasted tomatoes should be going off. Keep the tomatoes in the oven, and also pop the meatballs into the oven, then set a new timer for 20 minutes.ย (The tomatoes should roast for a total time of about 35 minutes, and the meatballs about 20 minutes).
- Toast the Buns.ย While the tomatoes and meatballs bake, toast 2 Onion Sub Buns, cut side down, in a large, nonstick pan over medium-high heat for about 2-3 minutes until golden brown and crispy. Set aside.
- Make the Tomato Sauce.ย Once the tomatoes are roasted and blistered, discard the thyme sprigs. Carefully transfer the roasted tomatoes, garlic cloves, and any juices from the baking sheet into a blender. Add 3-4 Fresh Basil Leaves (if using), and 1 tsp. Balsamic Vinegar. Blend until smooth, or to your desired consistency. Set aside.
- Build the Subs.ย Spoon a couple of spoonfuls of tomato sauce over the bottom of each bun. Place 4-5 meatballs onto the bottom bun, directly on top of the tomato sauce. Cover each row of meatballs with one slice of provolone cheese, torn in half, to cover the meatballs entirely. Pop the sandwiches back into the warm oven for a few minutes to melt the cheese. Carefully transfer the sandwiches to plates, then spoon more roasted tomato sauce onto the melted cheese before serving. Serve with extra grated Parmesan Cheese + Fresh Basil on top, if desired.
Notes
Nutrition
Tried this recipe?
Make sure to follow on Pinterest @aflavorjournal and on Instagram @aflavorjournal







Get More from A Flavor Journal!
Don’t forget to connect with me on social media where I share all of my small batch recipes!