Homemade Spaghetti O’s with Meatballs

Small beef meatballs, hollow ditalini, and a loose tomato sauce make this a homemade Spaghetti O’s-style dinner, not an exact copy of the canned version. The meatballs finish cooking in sauce with soft onion and tomato pieces while the pasta boils separately. Fold the ditalini in just before serving so the little tubes stay intact and there is still sauce to spoon around them.

Serves: 6 · Prep: 20 minutes · Cook: 25–30 minutes · Total: 45–50 minutes

Ingredients for Homemade Spaghetti O’s with Meatballs

Close view of a cut meatball among hollow ditalini and chunky tomato sauce

Meatballs

  • 1 lb ground beef (about 450g)
  • 1/3 cup plain fine breadcrumbs (35g)
  • 1 large egg
  • 2 tablespoons milk
  • 3/4 teaspoon kosher salt
  • 1/2 teaspoon garlic powder

Pasta and sauce

  • 1 tablespoon olive oil
  • 1 small yellow onion, finely diced (about 110g)
  • 2 garlic cloves, minced
  • 1 can (15 ounces) tomato sauce (about 425g)
  • 1 can (14.5 ounces) petite diced tomatoes, with juices (about 410g)
  • 1 cup low-sodium chicken broth
  • 1/4 teaspoon kosher salt, plus more for the pasta water
  • 8 ounces dry ditalini pasta (about 225g)
  • 2 tablespoons chopped flat-leaf parsley

How to Make Homemade Spaghetti O’s with Meatballs

Full bowl of saucy ditalini and small meatballs on a light neutral surface
  1. Form the meatballs: Gently mix the beef, breadcrumbs, egg, milk, 3/4 teaspoon salt, and garlic powder until just combined. Roll loosely into about 30–32 meatballs, roughly 1 inch across.
  2. Brown the meatballs: Warm the oil in a 12-inch deep skillet or wide saucepan over medium heat. Add the meatballs in a single layer, working in batches if needed. Turn gently and brown in spots, about 5–6 minutes. Transfer to a plate; they will finish cooking in the sauce.
  3. Make the sauce: If the beef released excess fat, carefully spoon most of it from the skillet. Add the onion and cook until soft and translucent. Add the garlic and cook briefly, until fragrant but not browned. Stir in the tomato sauce, diced tomatoes with their juices, broth, and remaining 1/4 teaspoon salt. Allow about 6–8 minutes for this step.
  4. Finish the meatballs: Return the meatballs and any juices to the skillet. Reduce the heat to medium-low, partly cover, and simmer gently for about 10–15 minutes, turning the meatballs once or twice. Start checking near 10 minutes; the center of a meatball should reach 160°F (70°C). Add a splash of broth or water if the sauce gets too thick.
  5. Boil the pasta: While the meatballs simmer, bring a pot of salted water to a full boil. Add the ditalini and cook according to the package directions, stirring occasionally. Start checking 1 minute before the earliest suggested time; the pasta should be just tender and hold its shape. Reserve 1 cup pasta water, then drain.
  6. Combine and serve: Gently fold the ditalini into the meatball sauce over low heat or off the heat. If the sauce does not pool lightly among the pasta, add reserved pasta water a few tablespoons at a time. Spoon into shallow bowls with several meatballs visible, and scatter the parsley over the top. Serve promptly.

Why Use Ditalini?

Ditalini has the small visible openings that give this dish its O’s-style look, though the pieces are short tubes rather than flat rings. For classic rings, use anelletti instead and follow its package cooking directions. For another use for this pasta shape, see kid-friendly garlic butter pasta with ditalini.

How to Keep the Meatballs Tender

Mix the beef only until the ingredients come together, and avoid packing the meatballs tightly. Keeping them roughly 1 inch across helps them cook evenly. Give them room in the skillet so they brown rather than crowding together, and turn them carefully to keep them intact. Browning does not mean the centers are cooked; use a thermometer to check.

How Saucy Should the Pasta Be?

The sauce should flow easily and remain visible between the ditalini. Small pasta absorbs liquid after it is mixed in, so combine it with the sauce near serving time. If the dish thickens, stir in reserved pasta water or warm broth a few tablespoons at a time until it is spoonable again.

For a shortcut, use small, fully cooked prepared meatballs and follow their package heating directions rather than the raw-beef timing above. For another meatball dinner, try baked turkey meatballs for kids.

Storing and Reheating Leftovers

As general food-safety guidance, refrigerate leftovers promptly in airtight containers for up to 3–4 days. Reheat gently on the stovetop or in the microwave until hot throughout, adding a splash of water or broth to loosen the sauce.

If making the components ahead, keep the cooked pasta separate from the meatball sauce when practical and combine them while reheating. Combined pasta will soften as it sits and may not retain its original texture after freezing.

Nutrition

Approximate nutrition per serving, based on 6 servings: 400 calories, 22g protein, 16g fat, and 43g carbohydrates. Approximate values per 100g of finished dish: 110 calories, 6g protein, 4g fat, and 12g carbohydrates. Values vary with the beef, canned ingredients, and amount of liquid added.

Homemade Spaghetti O’s with Meatballs

Small beef meatballs simmer in a tomato sauce and are folded with ditalini just before serving.
Course: Main Course
Cuisine: American
Prep: 20 min
Cook: 30 min
Total: 50 min
Servings: 6 Calories: 400 kcal

Equipment

  • 12-inch deep skillet or wide saucepan
  • Pasta pot
  • Meat thermometer

Ingredients

Meatballs

  • 1 lb ground beef (about 450g)
  • 1/3 cup plain fine breadcrumbs (35g)
  • 1 large egg
  • 2 tablespoons milk
  • 3/4 teaspoon kosher salt
  • 1/2 teaspoon garlic powder

Pasta and Sauce

  • 1 tablespoon olive oil
  • 1 small yellow onion, finely diced (about 110g)
  • 2 garlic cloves, minced
  • 1 can (15 ounces) tomato sauce (about 425g)
  • 1 can (14.5 ounces) petite diced tomatoes, with juices (about 410g)
  • 1 cup low-sodium chicken broth
  • 1/4 teaspoon kosher salt, plus more for the pasta water
  • 8 ounces dry ditalini pasta (about 225g)
  • 2 tablespoons chopped flat-leaf parsley

Instructions

  1. Gently mix the beef, breadcrumbs, egg, milk, 3/4 teaspoon salt, and garlic powder until just combined. Roll loosely into about 30–32 meatballs, roughly 1 inch across.
  2. Warm the olive oil in a 12-inch deep skillet or wide saucepan over medium heat. Brown the meatballs in a single layer, working in batches if needed, turning gently for about 5–6 minutes. Transfer them to a plate.
  3. If the skillet has excess beef fat, carefully spoon most of it out. Add the onion and cook until soft and translucent. Add the garlic and cook briefly, until fragrant but not browned.
  4. Stir in the tomato sauce, diced tomatoes with their juices, broth, and 1/4 teaspoon salt. Allow about 6–8 minutes for this step.
  5. Return the meatballs and any juices to the skillet. Reduce the heat to medium-low, partly cover, and simmer gently for about 10–15 minutes, turning the meatballs once or twice. Check near 10 minutes; the center should reach 160°F (70°C). Add a splash of broth or water if the sauce gets too thick.
  6. While the meatballs simmer, bring a pot of salted water to a full boil. Add the ditalini and cook according to the package directions, stirring occasionally. Start checking 1 minute before the earliest suggested cooking time; cook until just tender and still holding its shape.
  7. Reserve 1 cup of pasta water, then drain the ditalini.
  8. Gently fold the pasta into the meatball sauce over low heat or off the heat. Add reserved pasta water a few tablespoons at a time if needed to keep the sauce spoonable.
  9. Serve promptly in shallow bowls with several meatballs visible and parsley scattered over the top.

Tips

  • Mix the meatball ingredients only until they come together, and roll the meatballs loosely to keep them tender.
  • Brown the meatballs in batches if needed so they have room to brown instead of crowding together.
  • Use a thermometer to check doneness; browning does not mean the meatballs are cooked through.
  • Cook the ditalini just until tender so the small tubes hold their shape.
  • Fold the pasta in close to serving time, and loosen the sauce with pasta water or warm broth if it thickens.

Variations

  • Classic Ring Pasta: Use anelletti instead of ditalini for classic ring shapes, following the package cooking directions.
  • Prepared Meatball Shortcut: Use small, fully cooked prepared meatballs and heat them according to the package directions.

Notes

Refrigerate leftovers promptly in airtight containers for 3–4 days. Reheat gently until hot throughout, adding water or broth to loosen the sauce. Store cooked pasta separately from the sauce when practical; combined pasta softens as it sits and may lose texture after freezing.

Nutrition

Calories: 400 kcal | Protein: 22 g | Fat: 16 g | Carbohydrates: 43 g

Write A Comment