Keto Meatballs in Creamy Spinach Sauce – Comfort Food with a Low-Carb Twist
This dish is cozy, rich, and surprisingly simple. Tender meatballs simmer in a velvety spinach cream sauce that tastes like something from a restaurant, but it comes together on a weeknight. It’s hearty enough to satisfy and light enough to keep you on track.
If you love big flavor without the carb crash, this one’s for you. One pan, easy cleanup, and a meal everyone at the table will actually want to eat.
Ingredients
Method
- Mix the meatballs: In a large bowl, combine ground beef, ground pork, parmesan, egg, almond flour, parsley, garlic, onion powder, salt, pepper, and red pepper flakes. Stir just until evenly mixed. Don’t overwork or the meatballs will turn dense.
- Shape: Roll into 16–18 golf ball–sized meatballs with lightly oiled hands. Chill 10 minutes if they feel soft; it helps them hold shape when searing.
- Sear: Heat oil in a large skillet over medium-high. Add meatballs in a single layer without crowding. Sear 2–3 minutes per side until browned. Transfer to a plate; they will finish cooking in the sauce.
- Build the sauce base: Reduce heat to medium. Add butter to the same skillet. Sauté garlic 30 seconds until fragrant. Pour in broth and scrape up browned bits—that’s flavor.
- Add cream and cream cheese: Stir in heavy cream and cream cheese. Whisk until smooth and slightly thickened, 2–3 minutes. Keep the heat gentle to prevent curdling.
- Season and add spinach: Add Italian seasoning, parmesan, and lemon zest. Stir in spinach. If using fresh, let it wilt; if using frozen, make sure it’s squeezed dry first. Taste and adjust salt and pepper.
- Simmer the meatballs: Return meatballs and any juices to the skillet. Nestle them into the sauce. Cover and simmer on low 8–10 minutes, or until meatballs reach 160°F (71°C) internal temperature.
- Finish and serve: If the sauce seems thick, loosen with a splash of broth. If it’s thin, simmer uncovered a few minutes. Serve hot with a sprinkle of extra parmesan and cracked black pepper.
What Makes This Recipe So Good
- Low-carb comfort: You get classic meatball vibes without breadcrumbs or sugary sauces.
- One-pan convenience: The sauce simmers with the meatballs, which means fewer dishes and deeper flavor.
- Balanced richness: Cream, spinach, and parmesan create a silky sauce that clings to every bite.
- Family-friendly: Bold, familiar flavors that aren’t “diet food.” Great over zucchini noodles or cauliflower mash.
- Customizable: Swap proteins, tweak spice levels, or add herbs without losing the spirit of the dish.
What You’ll Need
- For the meatballs:
- 1 lb (450 g) ground beef, 80–85% lean
- 1/2 lb (225 g) ground pork (or use all beef)
- 1/3 cup finely grated parmesan
- 1 large egg
- 2 tbsp almond flour (or crushed pork rinds)
- 2 tbsp chopped fresh parsley
- 2 cloves garlic, minced
- 1 tsp onion powder
- 1 tsp salt
- 1/2 tsp black pepper
- 1/4 tsp red pepper flakes (optional)
- 2 tbsp olive oil or avocado oil for searing
- For the creamy spinach sauce:
- 2 tbsp butter
- 2 cloves garlic, minced
- 1 cup heavy cream
- 1/2 cup chicken or beef broth (low-sodium)
- 4 oz (115 g) cream cheese, softened and cubed
- 4 cups fresh baby spinach (or 1 cup frozen, thawed and well-drained)
- 1/2 cup grated parmesan, plus extra for serving
- 1 tsp Italian seasoning
- 1/2 tsp lemon zest (optional but brightens the sauce)
- Salt and pepper to taste
How to Make It
- Mix the meatballs: In a large bowl, combine ground beef, ground pork, parmesan, egg, almond flour, parsley, garlic, onion powder, salt, pepper, and red pepper flakes. Stir just until evenly mixed. Don’t overwork or the meatballs will turn dense.
- Shape: Roll into 16–18 golf ball–sized meatballs with lightly oiled hands.
Chill 10 minutes if they feel soft; it helps them hold shape when searing.
- Sear: Heat oil in a large skillet over medium-high. Add meatballs in a single layer without crowding. Sear 2–3 minutes per side until browned.
Transfer to a plate; they will finish cooking in the sauce.
- Build the sauce base: Reduce heat to medium. Add butter to the same skillet. Sauté garlic 30 seconds until fragrant.
Pour in broth and scrape up browned bits—that’s flavor.
- Add cream and cream cheese: Stir in heavy cream and cream cheese. Whisk until smooth and slightly thickened, 2–3 minutes. Keep the heat gentle to prevent curdling.
- Season and add spinach: Add Italian seasoning, parmesan, and lemon zest.
Stir in spinach. If using fresh, let it wilt; if using frozen, make sure it’s squeezed dry first. Taste and adjust salt and pepper.
- Simmer the meatballs: Return meatballs and any juices to the skillet.
Nestle them into the sauce. Cover and simmer on low 8–10 minutes, or until meatballs reach 160°F (71°C) internal temperature.
- Finish and serve: If the sauce seems thick, loosen with a splash of broth. If it’s thin, simmer uncovered a few minutes.
Serve hot with a sprinkle of extra parmesan and cracked black pepper.
Keeping It Fresh
- Storage: Cool completely, then store in an airtight container in the fridge for up to 4 days.
- Freezing: Freeze in portions for up to 2 months. The sauce may separate slightly after thawing, but it comes back together with gentle reheating and a quick whisk.
- Reheating: Warm on the stove over low heat. Add a splash of broth or cream to loosen the sauce.
Stir occasionally to keep it silky.
- Meal prep tip: Portion over cauliflower rice or steamed zucchini noodles for ready-to-heat lunches.
Health Benefits
- Keto-friendly macros: High in protein and fat with minimal carbs, ideal for low-carb eating patterns.
- Spinach power: Provides vitamin K, folate, iron, and antioxidants that support bone health and energy metabolism.
- Stable energy: The balance of protein and fat helps promote satiety and steadier blood sugar compared to carb-heavy meals.
- Customizable fats: Choose quality fats like olive oil and grass-fed butter to align with your nutrition goals.
What Not to Do
- Don’t skip the sear: Browning adds flavor and helps the meatballs hold together in the sauce.
- Don’t overmix: Tough meatballs happen when you mash the mixture too much. Mix gently until just combined.
- Don’t crank the heat: Boiling cream can cause the sauce to split. Keep it at a gentle simmer.
- Don’t forget to drain frozen spinach: Excess water will thin the sauce and mute the flavor.
- Don’t rely solely on salt: Parmesan, garlic, lemon zest, and herbs create depth without over-salting.
Alternatives
- Protein swaps: Use ground turkey, chicken, or lamb.
For lean meats, add 1 tbsp olive oil or an extra egg yolk to keep meatballs moist.
- Dairy tweaks: Replace heavy cream with coconut cream and use dairy-free cream cheese for a lactose-light version. Nutritional yeast can stand in for some of the parmesan.
- Greens: Sub spinach with chopped kale, Swiss chard, or arugula. Tender greens wilt quickly; sturdier greens need a few extra minutes.
- Texture: Swap almond flour with crushed pork rinds for a firmer meatball and extra savory punch.
- Heat lovers: Add more red pepper flakes or a pinch of smoked paprika for warmth.
- Serving ideas: Spoon over cauliflower mash, roasted spaghetti squash, sautéed zucchini ribbons, or simple garlicky green beans.
FAQ
Can I bake the meatballs instead of searing?
Yes.
Bake at 400°F (205°C) on a lined sheet for 12–15 minutes until browned and nearly cooked through, then finish them in the sauce. Searing gives deeper flavor, but baking is hands-off and still tasty.
How can I thicken the sauce without flour?
Simmer a few extra minutes to reduce, add more parmesan, or whisk in a bit more cream cheese. All three methods keep the dish keto-friendly and creamy.
What if my sauce splits?
Lower the heat immediately and whisk in a splash of cold cream.
Keep stirring off the heat until it smooths out. Gentle heat is key to preventing separation.
Can I make this ahead?
Absolutely. Cook fully, cool, and refrigerate.
Reheat gently on the stove with a little broth or cream. The flavors often deepen by the next day.
Is this recipe gluten-free?
Yes, as written. Just make sure your broth and seasonings are certified gluten-free if you’re sensitive or celiac.
What’s the best meat-to-fat ratio?
Aim for 80–85% lean beef with some pork mixed in.
The added fat keeps the meatballs tender and flavorful without drying out.
Can I add mushrooms or sun-dried tomatoes?
Yes. Sauté sliced mushrooms after searing the meatballs, before adding cream. Stir in chopped sun-dried tomatoes with the spinach for a tangy pop.
How spicy is this?
Mild as written.
Increase red pepper flakes or add a dash of hot sauce if you like more kick.
Wrapping Up
Keto Meatballs in Creamy Spinach Sauce is the kind of meal that checks every box: simple, comforting, and seriously flavorful. It’s versatile enough for a weeknight and polished enough for guests. Keep the heat gentle, season smart, and let the sauce hug those meatballs.
Serve with your favorite low-carb side and enjoy a dinner that feels indulgent without the carb overload.
Printable Recipe Card
Want just the essential recipe details without scrolling through the article? Get our printable recipe card with just the ingredients and instructions.



