Vegan Impossible Swedish "Meatballs" Recipe

Vegan Swedish meatballs in a white Dutch oven

The Spruce Eats / Leah Maroney

Prep: 15 mins
Cook: 20 mins
Total: 35 mins
Servings: 6 servings
Yield: 18 meatballs
Nutrition Facts (per serving)
398 Calories
32g Fat
19g Carbs
13g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 6
Amount per serving
Calories 398
% Daily Value*
Total Fat 32g 41%
Saturated Fat 16g 81%
Cholesterol 3mg 1%
Sodium 1363mg 59%
Total Carbohydrate 19g 7%
Dietary Fiber 4g 13%
Total Sugars 2g
Protein 13g
Vitamin C 5mg 27%
Calcium 116mg 9%
Iron 4mg 24%
Potassium 423mg 9%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)

These warm and comforting Swedish meatballs are completely delicious while being completely vegan! We used Impossible Burger ground "beef," now available in many grocery stores, to make the meatballs. No one will be able to tell that the dish doesn't use real meat, since Impossible resembles and tastes like beef. The gravy is made with coconut milk, making it rich and creamy without any dairy. Serve this recipe to any vegan or carnivore and they are sure to be pleased.

Serve the meatballs on a bed of creamy mashed potatoes or with cauliflower rice if you’re looking for less carbs. A little lingonberry jam on the side is also a must.


For the Meatballs:

  • 1 package (12 ounces) Impossible Burger meat

  • 1/4 cup minced sweet onion

  • 1/3 cup panko breadcrumbs

  • 1 1/2 tablespoons coconut milk

  • 3/4 teaspoon nutritional yeast

  • 3/4 teaspoon onion powder

  • 3/4 teaspoon garlic powder

  • 1/2 teaspoon kosher salt

  • 1/2 teaspoon freshly ground black pepper

  • 3 tablespoons olive oil

For the Gravy:

  • 3 tablespoons vegan butter

  • 2 tablespoons flour

  • 1/2 teaspoon garlic powder

  • 1/2 teaspoon onion powder

  • 2 tablespoons vegetable bouillon

  • 1 1/2 cups water

  • 15 ounces coconut milk

  • 1 to 2 tablespoons soy sauce

  • 1/2 teaspoon Dijon mustard

  • 1/2 teaspoon freshly ground black pepper

  • Kosher salt, to taste

  • 2 tablespoons fresh parsley

Steps to Make It

Make the Meatballs

  1. Gather the ingredients.

    Ingredients for vegan Swedish meatballs gathered

    The Spruce Eats / Leah Maroney

  2. Add the meat, chopped onions, and breadcrumbs to a large bowl. Pour the coconut milk over the top of the breadcrumbs. Allow the breadcrumbs to soak up the milk.

    Vegan meat and breadcrumbs soaking with coconut milk in a bowl

    The Spruce Eats / Leah Maroney

  3. Add the nutritional yeast, onion powder, garlic powder, salt, and pepper to the meat mixture and mix to combine and completely disperse the seasonings.

    Vegan Swedish meatball ingredients combined in a white bowl

    The Spruce Eats / Leah Maroney

  4. Use a small cookie scoop to form the meat mixture into 1-inch size balls. Place them on a parchment-lined baking sheet and continue rolling and forming until they are all completed.

    Swedish meatballs on a rimmed baking sheet lined with parchment paper
     The Spruce Eats / Leah Maroney
  5. Heat the olive oil in a large sauté pan on medium heat. Add the meatballs to the pan and cook on each side until browned (for a total of about 5 minutes).

    Vegan Swedish meatballs cooking in oil in a white Dutch oven

    The Spruce Eats / Leah Maroney 

  6. Remove the meatballs from the pan and place them on a plate. Prepare the gravy.

Make the Gravy

  1. Gather the ingredients.

    Ingredients for vegan Swedish meatball gravy gathered

    The Spruce Eats / Leah Maroney

  2. Add the vegan butter to the pan used for browning the meatballs and return to medium-high heat. Whisk in the flour and allow to cook for two minutes, stirring frequently. Whisk in the garlic and onion powder.

    Vegan butter whisked in a pan for Swedish meatballs

    The Spruce Eats / Leah Maroney

  3. Add the vegetable bouillon. Whisk in the water gradually until the mixture is combined and smooth. Whisk in the coconut milk, soy sauce, mustard, and pepper. Add salt to taste. Continue to heat and stir over medium heat until the sauce has thickened and is bubbling.

    Swedish meatball gravy whisked together in a white Dutch oven

    The Spruce Eats / Leah Maroney

  4. Add the meatballs back to the pan and cook them for 3 minutes or until they are heated through. Garnish with parsley and serve.

    Vegan Swedish meatballs in a pan with gravy

    The Spruce Eats / Leah Maroney


  • With regular meatballs, it's important to avoid overmixing, but when using vegan beef overmixing is not as much of an issue. Regardless, mix the ingredients together until the breadcrumbs and seasonings are evenly dispersed.
  • Browning the meatballs well on all sides adds flavor and complexity, so don't rush or skip this important step.
  • While it may seem strange to include soy sauce in Swedish meatball sauce, it adds umami, which can sometimes be lacking in dishes using vegan meat substitutes. You can use coconut aminos instead if desired.

Recipe Variations

This meatball recipe can be used as a base recipe for vegan meatballs of all kinds.

  • Italian Meatballs: Add 2 tablespoons vegan Parmesan (or omit), 1 tablespoon minced fresh parsley, 1 teaspoon dried oregano or salt-free Italian seasoning, and 1/2 teaspoon red pepper flakes. Serve with marinara sauce.
  • Buffalo Meatballs: Substitute Buffalo-style hot sauce for the coconut milk in the meatballs. After browning the meatballs, add 2/3 cup Buffalo-style hot sauce and 4 tablespoons vegan butter to the pan. Cook, stirring frequently, until the butter is melted and the meatballs are coated in the sauce. Serve with vegan blue cheese dressing.
  • Greek Meatballs: Substitute red wine vinegar for the coconut milk. Add 2 tablespoons minced fresh mint, 2 tablespoons minced fresh parsley, and 1 teaspoon dried oregano. Serve with vegan tzatziki.

How to Store

Store leftovers refrigerated in an airtight container for up to 5 days. Reheat them gently in a covered pan (you may need to add a splash of water to loosen the sauce) or in the microwave.