Few dishes can match the comfort and flavor of authentic Italian meatballs. Simmered slowly in a savory tomato sauce, these tender, juicy meatballs are perfect for family dinners, cozy nights in, or weekend meal prep. With a blend of beef and pork, fresh herbs, and Parmesan cheese, they bring the essence of Italian home cooking to your table.
1 pound ground beef (80/20)
1/2 pound ground pork
1/2 cup Italian-style breadcrumbs
1/4 cup whole milk
2 large eggs
1/2 cup grated Parmesan cheese
1/4 cup fresh parsley, finely chopped
4 cloves garlic, minced
1 small yellow onion, finely chopped
1 teaspoon dried oregano
1 teaspoon salt
1/2 teaspoon freshly ground black pepper
2 tablespoons olive oil (for browning)
For the sauce:
2 tablespoons olive oil
1 small onion, diced
3 cloves garlic, minced
2 cans (28 oz each) crushed tomatoes
1 tablespoon tomato paste
1 teaspoon sugar
1 teaspoon salt
1/2 teaspoon red pepper flakes (optional)
1 teaspoon dried basil
1/2 teaspoon dried thyme
Fresh basil leaves for garnish
In a small bowl, combine the breadcrumbs and milk. Let sit for 5-10 minutes until fully soaked.
In a large bowl, mix together the soaked breadcrumbs, ground beef, ground pork, eggs, Parmesan, parsley, garlic, onion, oregano, salt, and pepper. Mix just until combined.
Roll the mixture into meatballs about 1 1/2 to 2 inches in diameter.
Heat 2 tablespoons olive oil in a large skillet over medium heat. Brown the meatballs in batches, turning to brown all sides. They don’t need to be fully cooked—just browned.
In a large pot or Dutch oven, heat 2 tablespoons olive oil. Sauté the diced onion until soft, about 5 minutes. Add the garlic and cook for another minute.
Stir in the tomato paste and cook for 1-2 minutes. Then add the crushed tomatoes, sugar, salt, red pepper flakes (if using), basil, and thyme. Bring to a simmer.
Gently place the browned meatballs into the simmering sauce. Cover partially and cook for 35-45 minutes, stirring occasionally.
Garnish with fresh basil and serve hot over pasta, in subs, or with crusty bread.
Don’t overmix the meat to keep meatballs tender.
For lighter meatballs, substitute veal or turkey.
You can bake the meatballs at 400°F for 20 minutes instead of pan-frying.
Freeze meatballs with sauce for up to 3 months in airtight containers.