Meatball & Pepper Skillet with Tomato Herb Sauce
You know that moment at a Sunday roast when someone brings out a tray of something saucy and everyone quietly abandons their plate to crowd around it? That’s the energy of this skillet. It’s the kind of weeknight dinner that looks like you slow-cooked it all afternoon — but there’s a catch most recipes don’t warn you about.
This one-pan meatball and pepper skillet comes together in about 50 minutes with ingredients you likely already have. The meatballs stay juicy inside a smoky, herb-spiked tomato sauce, and the whole thing is built for mopping up with thick-cut toast. No special equipment, no hard-to-find items — just a skillet and a solid dinner.
Pro Tip
The mistake most home cooks make: they skip the resting step after browning the meatballs and go straight into the sauce. The result is meatballs that fall apart mid-simmer. Here’s the fix — after browning, let them sit on a plate for 3 to 4 minutes before adding them back to the sauce. That short rest lets the crust firm up, so they hold their shape through the full 10-minute braise without turning to mush.
Mixed ground meat (beef and pork blend) is the backbone here — most supermarkets stock it as ‘meatloaf mix.’ If you can only find straight ground beef, go for an 80/20 fat ratio to keep the meatballs moist. Fresh thyme and rosemary make a real difference; dried works in a pinch but cut the quantity by half. Canned whole tomatoes beat diced here — crush them yourself for a chunkier, more textured sauce.
Meatball & Pepper Skillet with Tomato Herb Sauce
4
servings20
minutes30
minutes590
kcal4
minutes54
minutesIngredients
1 red bell pepper
1 yellow bell pepper
2 medium yellow onions
1 clove garlic
6 sprigs fresh thyme
2 sprigs fresh rosemary
1 ¼ lbs mixed ground meat, beef-pork blend (600g)
1 large egg
2 tsp Dijon mustard
4 tbsp breadcrumbs
4 tbsp whole milk
1 tsp fine salt, plus more to taste
½ tsp black pepper, plus more to taste
4 tbsp sunflower oil
1 can (30 oz / 850ml) whole peeled tomatoes
½ cup vegetable broth (125ml)
1 tbsp granulated sugar
4 thick slices sourdough or crusty bread, for toasting
Directions
- Prep your vegetables. Dice both bell peppers, both onions, and the garlic into roughly ½-inch (1.5cm) pieces, then strip the thyme leaves and rosemary needles from their stems and chop them together. Keep the herb pile generous — they go into both the meatball mix and the sauce, and they’re doing a lot of the flavor work here.
- Make the meatballs. In a large bowl, combine the ground meat, garlic, half the diced onion, egg, mustard, breadcrumbs, and milk. Season firmly with salt and pepper, then mix until just combined — roll into balls about the size of a golf ball. The mix should feel slightly tacky but hold its shape; if it’s too wet to roll, add one more tablespoon of breadcrumbs.
- Brown the meatballs. Heat the oil in a large skillet over medium-high and sear the meatballs for about 8 minutes, turning every 2 minutes. You’re listening for a steady sizzle — if the pan goes quiet, the heat is too low and you’ll steam instead of sear. The outside should be a deep mahogany brown before you pull them.
- Rest, then build the sauce. Transfer meatballs to a plate and let them sit 3 to 4 minutes. Pour off all but 2 tablespoons of fat from the pan, then sauté the remaining onion and bell peppers over medium heat for 2 minutes. This is the step that keeps your meatballs intact — don’t skip it.
- Add tomatoes, broth, rosemary, thyme, sugar, salt, and pepper. Crush the whole tomatoes with the back of a wooden spoon as you stir — you want a rough, chunky texture, not a smooth purée. Taste the sauce before the meatballs go back in; it should be bold, slightly sweet, and herbaceous — adjust seasoning now while it’s easy.
- Braise to finish. Nestle the meatballs back into the sauce, cover the pan, and cook on medium-low for 10 minutes. Internal temperature must reach 160°F (71°C) for a beef-pork blend, or 165°F (74°C) if using ground turkey or chicken. The sauce will thicken and the meatballs will look glossy and swollen — that’s when you know they’ve absorbed the sauce rather than just sitting in it.
- Toast the bread and serve. Scatter the remaining fresh herbs over the skillet and bring it straight to the table with the toasted bread alongside. Thick-cut sourdough holds up best for scooping — thin slices will go soggy before anyone gets a second dip.
Variations
For a smokier profile, swap one of the bell peppers for a roasted poblano or add ½ teaspoon of smoked paprika to the meatball mix — it deepens the whole sauce. To make it dairy-free, replace the milk in the meatballs with an equal amount of broth; the texture barely changes.
Serving Suggestions
A simple green salad with a sharp vinaigrette cuts through the richness of the sauce. Creamy mashed potatoes work instead of bread if you want something more substantial on a cold night. Steamed rice is a quiet, practical option that lets the sauce do all the talking.
FAQ
Can I make the meatballs ahead of time?
Yes — roll and brown them up to a day in advance, then refrigerate. Add them directly from the fridge into the sauce and extend the braising time by 3 to 4 minutes to make sure they heat through to 160°F (71°C).
My sauce turned out too thin — what went wrong?
The most common cause is too much broth or a lid that traps too much steam. After testing three versions in my own kitchen, I found that leaving the lid slightly ajar for the last 3 minutes of braising gives the sauce just enough time to reduce to a proper coating consistency.
Can I use turkey or chicken instead of beef-pork?
Ground turkey works well here, but it’s leaner, so the meatballs can dry out faster — add an extra tablespoon of milk to the mix and don’t overcook. The internal temperature for poultry must reach 165°F (74°C). You might find yourself wondering whether a white wine splash in the sauce would suit the lighter meat even better.