Soak - Combine bread pieces with ⅔ cup water and set aside for 5 minutes, then mash with a fork.
Mix - In a large mixing bowl or a stand mixer with paddle attachment, add: 1 lb ground beef, 1 lb sausage, ¼ cup parmesan, 4 minced garlic cloves, 1 tsp salt, ½ tsp black pepper, 1 egg, and mashed breadcrumbs. Mix until well combined.
Brown the meatballs - Form into 1 ½" meatballs (about a flat ice cream scoop of meat). Dredge/roll meatballs in flour, dusting off excess. Heat a deep, large, heavy skillet or a Dutch oven over medium heat with about 3 Tbsp oil. Add meatballs in 2 batches without crowding the pan and saute until browned on all sides (about 6 min total or 2 min per side). Remove meatballs and set aside (don't worry about cooking through at this point).
Saute onion - In the same skillet over medium heat, add more oil if needed and saute 1 cup chopped onion, stirring often until soft and golden (5 min). Add 4 cloves minced garlic and stir 1-2 minutes until fragrant.
Stir in crushed tomatoes and 2 bay leaves. Bring to a light boil (stir to make sure it's actually boiling and not just sending bubbles to the surface).
Add meatballs back into the pan with tomato sauce, partially cover and cook at a gentle simmer for 30 minutes, turning the meatballs occasionally. (While meatballs simmer, make the pasta: Step 7.) Meatballs will be tender, and the sauce will be thickened. A few minutes before the sauce is done, stir in chopped fresh basil and season with salt and pepper to taste.
Cook pasta according to package instructions in salted water until al dente (or to desired doneness), drain, and return to the empty pot.
Toss together - Pour sauce and meatballs over spaghetti and toss gently to combine. To serve family-style, transfer to a large platter, garnish with parmesan cheese and fresh basil, and serve hot.
Bread absorbs moisture, so the meatballs are super juicy and hold together nicely. White bread is best, but you can use whole wheat or other soft sliced bread. You can also use gluten-free bread.
Lean ground beef – 7% to 15% fat content, which makes for the best texture, perfectly moist without being greasy.
Italian sausage adds extra flavor to the meatballs. If you can’t find ground sausage, you can buy sausages and remove the casings.
Parmesan cheese – Use freshly grated parmesan or finely shredded.
Egg – egg binds all the ingredients together so the meatballs don’t fall apart when cooking. You can omit the egg, but the meatballs will be more delicate.
Flour – all-purpose flour works great to create a nice browned crust on the meatballs. You can substitute 1:1 gluten-free flour.
Onion and garlic – staple Italian ingredients! It seems like a lot of chopped onion, but they shrink considerably when cooked.
Crushed tomatoes – If you use “Crushed tomatoes with basil,” you can omit the fresh basil if desired.
Bay leaves – these are optional if you don’t have them on hand, but they lend a depth of flavor.
Basil – Fresh basil adds vibrant flavor. You can substitute with 1 ½ tsp dry basil, but add it to the sauce at the beginning of simmering.
Pasta – We use spaghetti for that classic bite, but you can substitute your favorite pasta, like homemade pasta, linguine, or angel hair pasta. You can also use Spaghetti Squash.
