Growing up, spaghetti and meatballs was always our Friday night dinner. There’s something so comforting about a big pot of sauce simmering on the stove, filling the house with that familiar Italian-American aroma. These days, I still make it for my own family, and I’ve learned a few tricks to make the sauce even better than what Mom used to make.
I know we’re all busy, but this sauce is worth the little bit of extra time it takes to make from scratch. I usually start it on Sunday afternoon while I’m catching up on laundry or helping with homework. The best part? It makes enough for two meals, so I freeze half for those hectic weeknight dinners when cooking from scratch just isn’t happening.
If you’ve been using jarred sauce, don’t worry – we’ve all been there. But once you try this homemade version, you’ll see why taking the time to make your own is totally worth it. Plus, the recipe is pretty forgiving, so you can adjust the seasonings to match your family’s taste.
Why You’ll Love This Spaghetti and Meatballs
- Made-from-scratch sauce – Skip the jarred stuff – this homemade sauce uses fresh ingredients and simmers slowly to develop deep, rich flavors that taste like it came straight from an Italian kitchen.
- Extra-tender meatballs – The combination of bread, milk, and ricotta cheese creates incredibly soft and juicy meatballs that practically melt in your mouth.
- Perfect for meal prep – This recipe makes a big batch that’s great for freezing – you can enjoy homemade meatballs and sauce any time without starting from scratch.
- Family recipe worthy – With its blend of beef and Italian sausage, fresh herbs, and slow-simmered sauce, this is the kind of recipe that becomes a cherished family favorite passed down through generations.
- Customizable – You can easily adjust the sweetness of the sauce and the seasonings in the meatballs to match your family’s taste preferences.
What Kind of Ground Beef Should I Use?
For the best meatballs, you’ll want to use ground beef that has some fat in it – an 80/20 blend (meaning 80% lean meat to 20% fat) is ideal. While you might be tempted to go with extra-lean ground beef, the fat helps keep your meatballs juicy and tender as they cook. If you can, ask your butcher to grind the meat fresh, but packaged ground beef from the grocery store works fine too. Just make sure the meat looks fresh with a bright red color and avoid any packages with excess liquid or gray spots.
Options for Substitutions
This classic recipe can be adapted with several ingredient swaps if needed:
- Ground meat: While the combo of ground beef and Italian sausage makes great meatballs, you can use all beef, or try ground turkey and turkey sausage for a lighter version. Just note that turkey meatballs tend to be a bit drier.
- Fresh herbs: No fresh basil or parsley? Use dried herbs instead – about 1 tablespoon dried basil and 1 tablespoon dried parsley will do the job. For the meatballs, use 1/2 tablespoon dried parsley.
- Bread: Regular sandwich bread works fine instead of Italian bread. You can also use 1 cup of plain breadcrumbs, but soak them in the milk first for tender meatballs.
- Ricotta cheese: You can swap ricotta with cottage cheese (drained and mashed) or even plain Greek yogurt. These alternatives help keep the meatballs moist.
- Crushed tomatoes: If you only have whole tomatoes, just break them up with your hands or blender. In a pinch, you can use passata or tomato puree mixed with a bit of water.
- Spaghetti: Any long pasta works here – try linguine, fettuccine, or even zucchini noodles for a low-carb option. Just adjust cooking times according to package instructions.
Watch Out for These Mistakes While Cooking
The biggest mistake when making spaghetti and meatballs is overcrowding your pan when browning the meatballs – this causes them to steam instead of developing that delicious golden crust, so work in batches and leave plenty of space between each meatball. Another common error is overworking the meat mixture when forming the meatballs, which results in tough, dense meatballs – instead, mix ingredients just until combined and use a gentle touch when shaping them. For the sauce, rushing the cooking process is a rookie mistake – let it simmer for at least an hour (or even two) to allow the flavors to develop fully and the sauce to thicken naturally. To prevent your pasta from clumping together, don’t rinse it after cooking – instead, toss it immediately with a bit of the sauce, and remember to save some pasta water to help the sauce stick better to the noodles.
What to Serve With Spaghetti and Meatballs?
A big plate of spaghetti and meatballs calls for some classic Italian-inspired sides to round out your meal! Start with a simple green salad tossed with olive oil and balsamic vinegar – the light, fresh flavors balance perfectly with the rich sauce. Garlic bread is pretty much required here – you’ll want it to soak up every bit of that delicious sauce. If you’re feeding a crowd, try adding some roasted vegetables like broccoli or zucchini on the side, which pair nicely with the tomato sauce and help lighten up this hearty dish.
Storage Instructions
Keep Fresh: Your spaghetti and meatballs will stay good in an airtight container in the fridge for up to 4 days. I like to store the sauce and meatballs together, but keep the pasta separate to prevent it from soaking up too much liquid and getting mushy.
Freeze: This sauce and meatballs are perfect for freezing! Let them cool completely, then pop them in freezer-safe containers or bags for up to 3 months. I often make a double batch just to freeze half – it’s such a time-saver for busy weeknights. Just remember to freeze the sauce and meatballs without the pasta.
Reheat: When you’re ready to enjoy your leftovers, warm the sauce and meatballs in a pot over medium-low heat, stirring occasionally. If it seems a bit thick, you can thin it out with a splash of water or broth. For the pasta, cook up a fresh batch – it only takes about 10 minutes and tastes much better than reheated noodles!
Preparation Time | 20-30 minutes |
Cooking Time | 50-70 minutes |
Total Time | 70-100 minutes |
Level of Difficulty | Medium |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 3500-4000
- Protein: 200-230 g
- Fat: 220-250 g
- Carbohydrates: 250-280 g
Ingredients
- 3 tablespoons olive oil
- 1 large yellow onion (diced)
- 3 medium carrots (peeled and diced)
- 3 cloves garlic (finely chopped)
- 56 ounces crushed or whole tomatoes with juice (from 2 large cans)
- 1/4 cup fresh basil, chopped
- 1/4 cup fresh parsley, chopped
- 2 teaspoons tomato paste
- 1 to 3 tablespoons sugar, based on preference
- Salt and freshly ground black pepper as needed
- 1 cup milk
- 4 to 5 slices of fresh bread (like italian or country white, crusts removed)
- 2 pounds ground beef
- 1 pound italian sausage, bulk
- 1/3 cup ricotta cheese
- 1/3 cup parmesan cheese, grated
- 3 eggs
- 3 teaspoons kosher salt
- 1 1/2 tablespoons fresh parsley, chopped
- 3 teaspoons black pepper
- 1 1/2 teaspoons dried oregano
- 4 cloves garlic (finely chopped)
- Around 1 cup flour
- 1/4 cup of olive, grapeseed, or vegetable oil for frying
- 1 pound spaghetti pasta
Step 1: Prepare Ingredients and Start the Sauce
Begin by dicing the carrots and onions, mincing the garlic, and chopping the herbs.
Open all your canned goods.
To start the panade for the meatballs, tear the bread into small pieces and pour the milk over the top, allowing it to soak for a few minutes until it becomes a thick, wet paste.
In the meantime, heat olive oil in a large skillet or Dutch oven over medium heat.
Add the carrots and onions, toss to coat with oil, then reduce heat to low, cover, and cook for 10-15 minutes, stirring occasionally until the vegetables become very soft.
Step 2: Finish the Sauce
Remove the cover from the skillet and increase the heat to medium high.
Add the garlic and cook until fragrant, about 1 minute.
Stir in the canned tomatoes, tomato paste, parsley, basil, red pepper flakes (if using), and one tablespoon of sugar.
Season generously with salt and pepper.
Bring the mixture to a gentle boil, then reduce the heat to low.
Allow it to simmer uncovered for 30-45 minutes, stirring occasionally.
Taste and adjust the seasoning with salt, pepper, or sugar as needed.
The sauce will be slightly loose and chunky; if you prefer a smoother texture, use an immersion blender.
Add water, ¼ cup at a time, if the mixture becomes too thick, until the desired consistency is reached.
Step 3: Prepare the Meatball Mixture
In a large mixing bowl, whisk together the ricotta, Parmesan, eggs, salt, parsley, pepper, oregano, and garlic.
Add the soaked bread mixture and the meat.
Use your hands to gently mix everything together until a cohesive mixture forms.
Step 4: Form and Cook the Meatballs
Form the meat mixture into balls using a size of your choice.
A large cookie scoop that holds about 2 tablespoons of meat works well.
Dredge each meatball in a little bit of flour.
Heat olive oil in a skillet over medium high heat.
Carefully add the floured meatballs to the pot and brown them on all sides, flipping as needed, for 2-3 minutes per side.
Step 5: Combine Meatballs and Sauce
Transfer the browned meatballs into the gently simmering tomato sauce.
Allow them to finish cooking in the sauce for an additional 10-20 minutes depending on their size.
The meatballs are done when a meat thermometer reads at least 165 degrees Fahrenheit.
Step 6: Serve and Enjoy
Serve the meatballs over freshly cooked spaghetti, with plenty of sauce.
Finish with a sprinkling of Parmesan cheese and fresh basil.
Enjoy your meal!