Spaghetti squash and meatballs swaps pasta for roasted squash strands, cutting carbs while keeping the protein-forward plate that actually fills you up. The meatballs use almond meal as a binder, making the whole dish gluten-free without any fussy substitutions. It takes a bit of oven time, but most of that is hands-off.
Why this recipe works
Two things carry this dish. First, browning the meatballs in a hot pan before they go into the sauce builds a caramelized crust that holds together during simmering and adds depth the sauce alone can’t provide — the browned bits left in the pan go straight into the base, so nothing is wasted. Second, using both diced tomatoes and tomato paste gives the sauce body and concentrated flavor without a long cook time; the paste thickens quickly, so the meatballs finish cooking in a sauce that already tastes like it’s been going for hours. Together these two steps mean the meatballs are fully cooked through to a safe internal temperature of 160°F (71°C) and the sauce is rich enough to stand up to the mild, slightly sweet squash.
What can go wrong
- Meatballs fall apart in the sauce: Almond meal absorbs moisture differently than breadcrumbs — if the mix feels wet, refrigerate it for 15 minutes before rolling. Cold fat holds the balls together until the exterior sets in the pan.
- Squash strands turn watery: After scraping, spread the strands on a clean kitchen towel and press gently. Spaghetti squash holds a lot of water; skipping this step dilutes the sauce on the plate.
- Sauce scorches on the bottom: Tomato paste sticks fast on medium-high heat. Stir it constantly for the 30–60 seconds it’s in the pan before adding the diced tomatoes, and drop the heat as soon as the liquid goes in.
- Squash is undercooked and hard to scrape: Oven temperatures vary. Test doneness by pressing the outside — it should give slightly. If the flesh still resists the fork after scraping, microwave the halves cut-side down for 3–4 minutes.
- Meatballs are dense and rubbery: Overworking the meat mixture compresses the proteins. Mix just until the ingredients come together — stop as soon as you don’t see dry almond meal.
Ingredient notes
- Almond meal vs. almond flour: Almond meal (made from unpeeled almonds) is coarser and works better here as a binder. Almond flour is finer and can make the meatballs slightly gummy. Either works, but meal is the better call.
- Spaghetti squash size: A medium squash (around 3 lbs) yields roughly 4 cups of strands. Go larger if you want the squash to be the main carb base for four people; go smaller if you’re serving it as a lighter side alongside the meatballs.
- Italian seasoning: A pre-mixed blend is fine — skip the garnish of fresh herbs at the end, not worth the extra dish — but if you’re mixing your own, dried oregano and basil do most of the work here.
Leftovers and meal prep
Store meatballs and sauce together in an airtight container in the fridge for up to 4 days; the squash strands are best kept separate or they absorb too much liquid and go soft. Reheat the meatball sauce in a saucepan over medium-low heat, then add the squash for the last 2 minutes just to warm through. Both the meatballs and the sauce freeze well for up to 3 months — freeze them together in portions. The squash does not freeze well; it turns mushy, so roast a fresh one when you’re ready to serve. For meal prep, you can roll and refrigerate the raw meatballs up to 24 hours ahead, which cuts active cooking time on a weeknight significantly.

Delightful Spaghetti Squash and Meatballs
Ingredients
1 medium spaghetti squash - cut lengthwise and seeded
2 pounds ground beef (minced beef)
2 cans tomato - diced
1 can tomato paste
½ medium yellow onion - diced
1 medium orange bell pepper (orange capsicum) - diced
4 cloves garlic - minced- 1 tablespoon seasonings - Italian
1 teaspoon onion powder
1 teaspoon thyme
½ teaspoon rosemary
1 teaspoon garlic powder
1 teaspoon ground black pepper
1 teaspoon salt
Instructions
- Place the squash cut side down on a baking pan with some coconut oil. Bake at 350 degrees Fahrenheit while you prep everything else.
- In a pot, open all cans of tomatoes and paste and heat over medium heat.
- Add all seasonings.
- Form golf ball-sized balls of ground beef. I added salt and pepper, plus a little more Italian seasoning and some almond meal to make these have the right consistency and taste.
- In a large frying pan, brown the meatballs. Then remove and set to the side (They won’t be cooked through yet but don’t worry.)
- While the tomato mixture heats, dice the veggies and saute them in the same pan you just cooked the meatballs in. (Here is where your house starts to smell amazing.)
- Add them to your tomatoes when the onions are beginning to get soft and translucent.
- Heat the sauce mixture until bubbling. Let it bubble for about 5 minutes, with a lid over it.
- Remove the sauce from the heat and place it in a food processor.
- Blend it a few times in the processor.
- Return the blended sauce to the pot and add the meatballs back in. Cook meatballs in the sauce for about 10 minutes.
- By now, your squash should be soft.
- Remove the squash from the oven and let it cool a bit before you attempt to scrape it out.
- When you scrape it out of the shell, it comes out in strands that resemble spaghetti. Hence the name.
- Add the squash straight to the sauce.
Nutrition
Common questions
Can I use ground turkey or chicken instead of beef for the meatballs?
Yes, ground turkey or chicken works well here. Because ground poultry must reach 165°F (74°C) internally — never served pink — make sure to verify doneness with a meat thermometer before pulling them from the sauce.
How do I know when the spaghetti squash is fully cooked?
The skin should yield slightly when you press it, and a fork should slide into the flesh without resistance. If the strands clump and won’t separate cleanly, the squash needs more time — put it back cut-side down for another 10 minutes.
Is this dish enough on its own, or do I need a side?
It’s a complete meal as written — the meatballs provide substantial protein and the squash covers your vegetable base. If you’re feeding people with bigger appetites, a simple green salad or some crusty bread on the side rounds it out without extra cooking.
Can I make the sauce ahead and add the meatballs later?
Yes, the sauce can be made up to 3 days ahead and refrigerated. Brown the meatballs fresh when you’re ready to eat, then simmer them in the reheated sauce for 15–20 minutes until they hit 160°F (71°C) internally.
Try these next
- Beef Ricotta Lasagna Rolls
- Olive Beef Polpette Perfection
- Hearty Beef Cauliflower Bake
- Spicy Beef Stuffed Peppers










