Skip to content
← Back to recipes

Dairy-Free Spaghetti and Meatballs

Dairy-free spaghetti and meatballs with a garlic-basil marinara and spaghetti finished right in the sauce, so every strand gets coated and the cheese is optional.

Recipe by Andrew Tibbs, the Non Dairy Dude in Dairy-Free Dinner Recipes and Dairy-Free Pasta Recipes

Published

Pin

Dude Note

Make the scratch-made marinara to impress friends or family, or just treat yourself because you deserve the full comfort without the dairy.

Dairy-Free Spaghetti and Meatballs
Dairy-Free Spaghetti and Meatballs
1 / 2
Slide 1 of 2

This is the dinner I make when I want something that tastes like Sunday at my grandmother's house but doesn't involve me standing over a pot of grated Parmesan wondering what's actually in it. You start with a batch of dairy-free meatballs, either fresh or whatever you've got stashed in the freezer, and build a sauce around them with olive oil, garlic, crushed tomatoes, and tomato paste for backbone. No milk-soaked breadcrumbs, no cheese stirred into the meat mixture. The sauce doesn't need dairy to taste like it's been simmering all afternoon.

The part that used to trip me up was the sauce itself. Cream-based or butter-finished marinara is everywhere once you start looking, and it's an easy way to lose the whole dish without realizing it. This version skips that step entirely and leans on tomato paste and a splash of reserved pasta water to get that glossy, clingy texture instead. Finish the spaghetti directly in the sauce rather than dumping sauce over a plate of plain noodles and you get a pan that actually tastes seasoned all the way through.

Serve it with a side of dairy-free cheesy garlic bread for sopping up the extra sauce, and a sprinkle of dairy-free Parmesan-style topping if you want that last bit of salt and funk. Torn basil on top is not optional in my house, even if everything else around here is up for debate.

Prep 10 min
Cook 35 min
Total 45 min
Servings 6
Difficulty easy

This recipe uses: Dairy-Free Meatballs

Servings
6

Ingredients

Meatballs

  • 1 batchDairy-free meatballs, cooked or freshly baked

Sauce

  • 2 tbspOlive oil
  • 1 smallYellow onion, finely diced
  • 4 clovesGarlic cloves, thinly sliced or minced
  • 2 tbspTomato paste
  • 28 ozCrushed tomatoes
  • ½ cupWater, to rinse the tomato can

Seasoning

  • 1 tspFine salt
  • 1 tspDried oregano
  • ¼ tspRed pepper flakes, optional

Finish

  • ¼ cupFresh basil leaves, torn, plus more for serving
  • ¼ cupDairy-free Parmesan-style topping, optional
  • 1 tbspExtra-virgin olive oil, optional for serving

Pasta

  • 1 lbSpaghetti
  • 1 cupReserved pasta water

Instructions

  1. 1

    If the dairy-free meatballs are cold, let them sit at room temperature while you start the sauce. If making them fresh, bake them according to the dairy-free meatballs recipe before adding them to the sauce.

  2. 2

    Heat the olive oil in a wide skillet or Dutch oven over medium heat. Add the onion and cook for 5 to 6 minutes, until softened but not browned.

  3. 3

    Add the garlic and cook for 30 seconds. Stir in the tomato paste and cook for 1 to 2 minutes, until it darkens slightly and smells savory.

  4. 4

    Add the crushed tomatoes, water, salt, oregano, and red pepper flakes if using. Bring to a simmer, then reduce the heat to medium-low and cook uncovered for 15 minutes, stirring occasionally.

  5. 5

    Gently nestle the cooked meatballs into the sauce. Simmer for 10 to 12 minutes, spooning sauce over the meatballs occasionally, until they are hot and the sauce tastes rounded.

  6. 6

    While the meatballs warm in the sauce, bring a large pot of salted water to a boil. Cook the spaghetti until about 1 minute shy of al dente. Reserve 1 cup pasta water, then drain.

  7. 7

    Transfer the meatballs to a plate so they do not break while tossing the pasta. Add the drained spaghetti to the sauce and toss over low heat for 1 to 2 minutes, adding reserved pasta water a splash at a time until the sauce clings to the noodles.

  8. 8

    Stir in the torn basil. Taste and adjust with more salt, red pepper flakes, or a drizzle of olive oil if needed.

  9. 9

    Divide the sauced spaghetti among bowls, top with meatballs, and finish with more basil, dairy-free Parmesan-style topping if using, and a little extra-virgin olive oil.

How we make it dairy-free

  • Parmesan in the meatballs → Use a batch of dairy-free meatballs instead of mixing real Parmesan into the meat. They hold together fine and don't need it for flavor once they're in the sauce.
  • Milk-soaked breadcrumbs → Skip the milk soak. The sauce and the meatballs themselves carry enough moisture and richness without it.
  • Grated cheese at the table → Swap in a dairy-free Parmesan-style topping if you want that finishing salt and bite, or just leave it off and let the garlic and basil do the work.
  • Butter or cream in the sauce → Build the marinara with olive oil, garlic, tomato paste, and crushed tomatoes instead. Reserved pasta water gets you the same glossy cling without any dairy.

None of these swaps change the cook time, so don't overthink it.

Tips & Variations

Timing note: The listed timing assumes the dairy-free meatballs are already cooked or baking while you start the sauce. If you are making the meatballs completely from scratch first, plan on about 1 hour 10 minutes total.

Use the full meatball batch: One batch of dairy-free meatballs makes about 22 to 24 meatballs, enough for 6 dinner servings with spaghetti.

Turkey meatball swap: Dairy-free turkey meatballs also work here if you want a lighter version. Warm them gently and avoid a long hard simmer so they stay tender.

Finish the pasta in the sauce: Draining spaghetti and spooning sauce on top works, but tossing the noodles in the skillet with pasta water gives a glossier, better-coated result.

Move the meatballs before tossing: Dairy-free meatballs are tender by design. Taking them out briefly keeps them from breaking while you toss the spaghetti.

Do not over-simmer the meatballs: They only need enough time to warm through and season the sauce. A hard boil can make them tighter and more likely to fall apart.

About dairy-free Parmesan: Use it if you like the salty finish, but the sauce and meatballs are designed to stand without it. A drizzle of good olive oil and fresh basil are often enough.

Jarred sauce shortcut: You can replace the homemade sauce with 4 cups of dairy-free marinara. Still warm the meatballs gently in it and finish the spaghetti with pasta water.

Leftovers: Store pasta, sauce, and meatballs together for up to 4 days. Reheat gently with a splash of water to loosen the sauce.

Frequently asked questions

Can I use store-bought dairy-free meatballs instead of making them from scratch?

Yes. Store-bought dairy-free or plant-based meatballs work fine here. Just heat them through in the sauce for the last several minutes of simmering so they pick up flavor instead of just being reheated.

What can I use instead of dairy-free Parmesan topping?

Nutritional yeast with a pinch of salt gets you a similar savory note in a pinch. Otherwise, extra torn basil and a drizzle of good olive oil cover the gap just fine.

Why add reserved pasta water to the sauce?

The starch in that water helps the sauce cling to the spaghetti instead of pooling at the bottom of the bowl. Add it a splash at a time while tossing the pasta in the sauce until it looks glossy.

Is crushed tomatoes the same as canned tomato sauce for this recipe?

No, crushed tomatoes have more texture and body. Tomato sauce is thinner and will give you a flatter result. If crushed tomatoes aren't available, canned whole tomatoes you crush by hand are the better substitute.

Get new dairy-free comfort food recipes

New recipes, substitution tips, and classic dishes rebuilt without dairy.