
Juicy beef meatballs with deeply flavored, jammy pan-roasted grape tomatoes and garlic, then finished with burrata and fresh basil.

These pan-roasted tomato meatballs feel feel like a step above without being complicated. Juicy and tender beef meatballs cook right in a skillet of blistered grape tomatoes until the tomatoes break down into a flavorful, jammy base. Burrata goes in at the end and softens into the hot tomatoes and meatballs. Fresh basil makes it all even more tasty.
I tested this recipe several times before I was happy with it. Two things made the biggest difference: using 93/7 ground beef so the skillet doesn’t become greasy and giving the tomatoes enough time to pan-roast until they are truly concentrated. That jammy tomato stage is where so much of the flavor comes from.
We’ve served this with garlic bread, spooned it over spaghetti, and even talked about piling it onto a thick slice of French or Italian bread for an open-faced sandwich. It has quickly become one of those recipes we know we’ll make again and again.
For a completely different, but equally delicious, flavor profile, you might like our chicken curry meatballs.
Reasons to Love This Recipe
Ingredients at a Glance

- Panko Breadcrumbs. Soaked with milk first to help keep the lean beef meatballs tender rather than dense.
- Whole Milk. Moistens the panko and helps create a softer meatball texture.
- 93/7 Ground Beef. The tested choice for this recipe. It is lean enough to avoid excess grease in the skillet while still producing juicy, flavorful meatballs.
- Egg. Helps bind the meatball mixture together.
- Parmesan. Adds savory flavor and a little richness to the meatballs.
- Garlic. Used both in the meatballs and the tomato mixture for layers of flavor.
- Fresh Basil. Adds freshness to the meatballs and again at the end of cooking.
- Italian Seasoning. Gives the meatballs a subtle herb background without overpowering the tomatoes.
- Grape Tomatoes. The star of the skillet. Pan-roasting them until deeply blistered and jammy creates the concentrated flavor that makes this recipe special.
- Olive Oil. Helps the tomatoes blister and brown in the skillet.
- Balsamic Vinegar. Adds acidity and a touch of sweetness that deepens the flavor of the concentrated tomatoes.
- Crushed Red Pepper Flakes. Optional, for a little background heat.
- Burrata. Adds a cool, creamy contrast to the hot meatballs and jammy tomatoes.
- Black Pepper and Parmesan. Optional finishing touches for extra savory flavor.
How to Make It (Photo Tutorial)







Tips for Success
- Use 93/7 ground beef. This is the lean beef ratio that worked best in testing. Fattier beef releases too much grease into the skillet, and there is no practical way to drain it once the meatballs are nestled into the tomatoes.
- Do not rush the tomatoes. The grape tomatoes need time to blister, collapse, and reduce until thick and jammy. That concentrated texture is one of the main reasons this recipe has so much flavor.
- Pan-roast rather than oven-roast. I tested oven-roasting, but it created too much liquid and did not give the tomatoes the same concentrated, jammy texture.
- Use a wide skillet or braiser. Giving the tomatoes plenty of surface area helps them brown and concentrate instead of steaming.
- Mix the meatballs gently. Stir just until the ingredients are combined. Overmixing can make the meatballs firm rather than tender.
- Check doneness with a thermometer. Cook the meatballs until the centers reach 160 F (71 C).
- Reduce again if needed. If the meatballs release enough liquid to loosen the tomatoes, remove them briefly and simmer the tomatoes until thick, glossy, and jammy again.
Variations and Substitutions
- Ground Turkey, Chicken, or Pork. These have not been tested in this recipe. Because they are generally leaner than many beef blends, they may work.
- Cherry Tomatoes. The final recipe was tested with grape tomatoes. Cherry tomatoes may produce a little more liquid and a saucier result.
- Mozzarella. Burrata is part of what makes this recipe special, so keep it if possible. Fresh mozzarella could work in a pinch, but it will not give the same creamy center or richness.
- Red Pepper Flakes. Leave them out for a milder skillet, or add a slightly larger pinch if you want more heat.
- Serving Style. Serve straight from the skillet, spoon over spaghetti, or pile onto thick slices of French or Italian bread for an open-faced dinner.
Make Ahead
- You can prepare and shape the meatballs up to 1 day in advance. Store them in a covered airtight container in the refrigerator until you’re ready to cook.
- You can also slice the garlic and measure the remaining ingredients ahead of time. I would wait to pan-roast the tomatoes until just before cooking so they keep the deeply concentrated, jammy texture that makes this recipe special.

Ways to Serve It
- With Garlic Bread or Rolls. Serve them with our garlic dinner rolls so you have something soft and buttery to soak up the jammy tomatoes and burrata.
- Over Pasta. Spoon the meatballs and tomatoes over spaghetti, or serve them with Parmesan butter noodles for a richer, more comforting dinner.
- Open-Faced on Bread. Pile the meatballs and tomatoes onto a thick slice of toasted French or Italian bread, then add the burrata on top for an easy bistro-style open-faced dinner.
- With a Fresh Vegetable Side. Pair the skillet with Parmesan grilled zucchini for a simple side that won’t compete with the rich tomatoes and cheese.
- With a Light Salad. Our white bean salad adds freshness and helps balance the richness of the meatballs and burrata.
- With a Simple Grain Side. Serve with our lemon couscous for an easy side that rounds out the meal without turning it into another pasta dish.
Storage and Reheating
- Store. Keep leftovers in an airtight container in the refrigerator for up to 3 to 4 days.
- Reheat on the stovetop. Warm the meatballs and tomatoes gently in a covered skillet over low heat until heated through.
- Reheat in the microwave. Heat individual portions at reduced power until warmed through.
- Add fresh burrata when possible. Burrata is best fresh. If you expect leftovers, add burrata only to the portion you’re serving and use fresh burrata when reheating the rest.
More Skillet and One-Pan Dinners
Tried this recipe? I’d love to hear how it turned out! Leaving a quick rating and comment helps other readers and supports Heavenly Home Cooking more than you know.

Meatballs
- ⅓ cup panko breadcrumbs
- 3 tablespoons whole milk
- 1 pound 93/7 ground beef Note 1
- 1 large egg
- ¼ cup finely grated Parmesan
- 1 clove garlic minced
- 1½ tablespoons finely chopped fresh basil
- ¾ teaspoon kosher salt
- ¼ teaspoon freshly ground black pepper
- ¼ teaspoon Italian seasoning
Pan-Roasted Tomatoes
- 2 tablespoons olive oil
- 1½ pounds grape tomatoes
- 3 cloves garlic thinly sliced
- 2 teaspoons balsamic vinegar
- ¾ teaspoon kosher salt
- ¼ teaspoon freshly ground black pepper
- pinch crushed red pepper flakes optional
For Finishing
- 8 ounces burrata
- ¼ cup fresh basil leaves torn
- greshly ground black pepper to taste
- grated Parmesan optional
-
Combine the ⅓ cup panko breadcrumbs and 3 tablespoons whole milk in a large bowl. Let stand for about 5 minutes, until the milk is absorbed.
-
Add the 1 pound 93/7 ground beef, 1 large egg, ¼ cup finely grated Parmesan, 1 clove garlic minced, 1½ tablespoons finely chopped fresh basil, ¾ teaspoon kosher salt, ¼ teaspoon freshly ground black pepper, and ¼ teaspoon Italian seasoning. Mix gently just until combined.
-
Form the mixture into about 13 to 14 meatballs, roughly 1½ inches each. Set aside.
-
Heat the 2 tablespoons olive oil in a wide skillet or braiser over medium-high heat (Note 2). Add the 1½ pounds grape tomatoes in as close to a single layer as possible. Cook undisturbed for 3 to 4 minutes, until the undersides begin to blister and brown.
-
Stir and continue cooking for another 8 to 12 minutes, stirring occasionally, until the tomatoes are deeply blistered, many have collapsed and burst, and their juices have cooked down to a thick, jammy consistency (Note 3).
-
Reduce the heat to medium. Add the sliced 3 cloves garlic, 2 teaspoons balsamic vinegar, ¾ teaspoon kosher salt, ¼ teaspoon freshly ground black pepper, and pinch crushed red pepper flakes, if using. Cook briefly, stirring, until the garlic is fragrant and the tomato mixture is glossy and concentrated.
-
Reduce the heat to medium-low. Nestle the raw meatballs into the tomato mixture, leaving a little space between them.
-
Cover and cook gently for about 10 minutes. Uncover, carefully turn the meatballs, and continue cooking for another 5 to 8 minutes, or until the centers reach 160 F (71 C).
-
If the meatballs release enough liquid to loosen the tomato mixture, transfer them temporarily to a plate. Simmer the tomatoes uncovered for another 2 to 5 minutes, until thick, glossy, jammy, and spoonable. Return the meatballs to the skillet.
-
Remove the skillet from the heat. Tuck the 8 ounces burrata into the skillet between the hot meatballs and jammy tomatoes, then tear each burrata ball open.
-
Scatter the ¼ cup fresh basil leaves over the skillet and finish with greshly ground black pepper and grated Parmesan, if desired. Let stand for about 5 minutes before serving. Store and reheat leftovers as described in Note 4.
- Use 93/7 ground beef. Lean ground beef keeps the meatballs juicy and tender without releasing excessive grease into the tomatoes. Fattier ground beef is not recommended because the rendered fat cannot easily be drained from the skillet. Ground chicken, turkey, and pork have not been tested in this recipe.
- Use a wide skillet or braiser. The wide cooking surface allows the grape tomatoes to blister, brown, and concentrate instead of steaming. Keep them in as close to a single layer as practical.
- Do not rush the tomatoes. Their deeply concentrated, jammy texture is essential to the flavor of the finished dish. Continue cooking until they are well blistered and collapsed and their juices have reduced substantially. Pan-roasting is the tested method. Oven-roasting produced too much liquid and did not create the same jammy result.
- Storage and reheating. Refrigerate leftovers in an airtight container for up to 3 to 4 days. Reheat the meatballs and tomatoes gently in a covered skillet over low heat or in the microwave at reduced power until hot. Burrata is best fresh; if possible, add fresh burrata after reheating rather than repeatedly reheating it.
Calories: 581kcal | Carbohydrates: 13g | Protein: 34g | Fat: 46g | Saturated Fat: 19g | Polyunsaturated Fat: 2g | Monounsaturated Fat: 16g | Trans Fat: 1g | Cholesterol: 126mg | Sodium: 1099mg | Potassium: 768mg | Fiber: 2g | Sugar: 6g | Vitamin A: 2003IU | Vitamin C: 25mg | Calcium: 449mg | Iron: 3mg
Servings: 4 servings
Calories: 581kcal
Cost: About $22 total / $5.50 per serving