Crispy Sage Butter Chicken Meatballs
Juicy chicken meatballs with golden crispy edges, simmered in a nutty sage butter sauce. This 30-minute skillet dinner is cozy, family-friendly, and perfect for busy fall evenings.
Looking for a cozy dinner that feels fancy but comes together in under 30 minutes? These Crispy Sage Butter Chicken Meatballs are exactly what you need. Tender, flavorful chicken meatballs are pan-seared until golden and crispy on the outside, then finished in a rich, nutty sage butter sauce that tastes like fall in a skillet.
This recipe is a weeknight hero: simple ingredients, one skillet, and minimal cleanup. The sage butter sauce is incredibly easy to make but tastes like something from a restaurant. Serve these meatballs over creamy mashed potatoes, buttered noodles, or with a side of roasted vegetables for a complete meal the whole family will love.
Why You'll Love This Recipe
- Ready in 30 minutes – From start to finish, this dinner comes together quickly, making it perfect for busy evenings.
- One skillet – Less dishes means more time to relax. Everything cooks in a single skillet, including the sauce.
- Crispy, juicy texture – Pan-searing the meatballs gives them a beautiful golden crust while keeping the inside tender and moist.
- Rich, nutty sage butter sauce – The combination of butter, fresh sage, and a touch of garlic creates a deeply flavorful sauce that coats every meatball.
- Family-friendly – Kids love the mild flavor of chicken meatballs, and the sage butter sauce is aromatic but not overpowering.
- Great for meal prep – Make a double batch and enjoy leftovers for lunch the next day or freeze for a future quick dinner.
- Naturally gluten-free option – Use gluten-free breadcrumbs or almond flour for a gluten-free version without sacrificing texture.
- Perfect for fall – The warm flavors of sage and butter make this a quintessential autumn comfort dish.
Ingredients
For the meatballs:
- 1 lb (450 g) ground chicken (or ground turkey)
- ½ cup (50 g) plain breadcrumbs (panko or regular)
- ¼ cup (25 g) grated Parmesan cheese
- 1 large egg, lightly beaten
- 2 cloves garlic, minced
- 1 tablespoon fresh sage, finely chopped (or 1 teaspoon dried sage)
- ½ teaspoon salt
- ¼ teaspoon black pepper
- 2 tablespoons olive oil, for frying
For the sage butter sauce:
- 3 tablespoons unsalted butter
- 8-10 fresh sage leaves (or 1 tablespoon fresh chopped sage)
- 1 clove garlic, thinly sliced
- ¼ cup (60 ml) low-sodium chicken broth
- 2 tablespoons heavy cream (optional, for extra richness)
- Salt and pepper to taste
For garnish (optional):
- Fresh sage leaves
- Extra grated Parmesan
Optional Substitutions
- Ground chicken – Substitute with ground turkey, ground pork, or a mix of ground pork and veal for a different flavor. Ground turkey will be slightly leaner.
- Breadcrumbs – Use gluten-free breadcrumbs for a gluten-free version. You can also substitute with almond flour (use ⅓ cup) or crushed pork rinds for a low-carb option.
- Parmesan cheese – Swap with pecorino romano or nutritional yeast for a dairy-free option (the flavor will change slightly).
- Fresh sage – Dried sage works well: use 1 teaspoon dried sage in the meatballs and 1 teaspoon dried sage flakes in the sauce if fresh isn't available.
- Heavy cream – Omit the cream for a lighter sauce, or substitute with full-fat coconut milk for a dairy-free sauce.
- Chicken broth – Use vegetable broth or dry white wine (like Sauvignon Blanc) for a different flavor profile. If using wine, let it simmer for 1-2 minutes to cook off the alcohol.
- Butter – For a dairy-free version, use a high-quality vegan butter or ghee (ghee is not dairy-free but is often tolerated).
- Egg – To make egg-free, substitute with 2 tablespoons of milk or water mixed with 1 tablespoon flaxseed meal (let sit for 5 minutes).
Instructions
- Prepare the meatball mixture. In a large bowl, combine the ground chicken, breadcrumbs, Parmesan cheese, beaten egg, minced garlic, fresh sage, salt, and black pepper. Mix gently with your hands until just combined. Overmixing can make the meatballs dense.
- Form the meatballs. Using slightly wet hands, roll the mixture into 1.5-inch (4 cm) meatballs, about 2 tablespoons each. You should get 16-18 meatballs. Place them on a plate or baking sheet.
- Heat the skillet. Place a large (12-inch) skillet over medium-high heat. Add 2 tablespoons olive oil and let it heat until shimmering.
- Sear the meatballs. Carefully place the meatballs in a single layer in the hot skillet, making sure not to overcrowd (cook in two batches if needed). Cook for 2-3 minutes per side, turning every 2 minutes, until all sides are golden brown and crispy. The meatballs will not be cooked through yet.
- Remove meatballs and make the sauce. Transfer the browned meatballs to a clean plate. Reduce the heat to medium. Add 3 tablespoons butter to the skillet. Once melted, add the fresh sage leaves and sliced garlic. Cook for 1-2 minutes, stirring often, until the sage is crisp and the garlic is fragrant. Be careful not to burn the garlic.
- Deglaze the pan. Pour in the chicken broth, scraping up any browned bits from the bottom of the skillet. Let the sauce simmer for 2 minutes, allowing it to reduce slightly.
- Add cream (optional). If using heavy cream, stir it in now and let the sauce simmer for another minute until slightly thickened.
- Return meatballs to the skillet. Gently place the seared meatballs back into the sauce, spooning some sauce over each. Cover the skillet with a lid and let cook for 5-7 minutes over medium-low heat, or until the meatballs are cooked through (internal temperature reaches 165°F / 74°C).
- Garnish and serve. Taste the sauce and adjust seasoning with salt and pepper if needed. Garnish with fresh sage leaves and extra Parmesan. Serve hot.
Pro Tips
- Don't overmix the meatball mixture. Overworking the ground chicken can result in dense, tough meatballs. Mix until everything is just combined.
- Use wet hands to form meatballs. Lightly wetting your hands prevents the mixture from sticking and helps you roll smooth, round meatballs.
- Get a good sear. Don't rush the browning step. A nice golden crust adds texture and flavor. The meatballs should release easily from the pan when they are ready to flip.
- Use a meat thermometer. Chicken meatballs need to reach an internal temperature of 165°F. Insert the thermometer into the center of a meatball to check.
- Sage butter sauce is delicate. Cook the sage and garlic just until fragrant – burning them creates a bitter taste.
- Adjust thickness of sauce. If the sauce is too thin, let it simmer uncovered for an extra minute or two. If too thick, add a splash of broth.
- Make ahead. You can form the meatballs up to 24 hours in advance and keep them covered in the fridge. When ready, sear and finish with sauce as directed.
- Double batch for meal prep. These meatballs freeze beautifully. Make a double batch and freeze half for another busy night.
- Serving suggestion. These meatballs are fantastic over mashed potatoes, rice, or egg noodles. The sauce soaks right in.
Variations and Substitutions
- Creamy Tuscan-style – Add ¼ cup sun-dried tomatoes (chopped) and a handful of fresh spinach to the sauce. Let the spinach wilt before adding the meatballs back.
- Lemon herb – Add the zest of 1 lemon to the meatball mixture and 1 tablespoon lemon juice to the sauce. Omit sage and use fresh thyme and rosemary.
- Spicy kick – Add ½ teaspoon red pepper flakes to the sauce along with the garlic. You can also mix ¼ teaspoon cayenne into the meatball mixture.
- Parmesan crusted – After browning the meatballs, sprinkle extra Parmesan cheese over them before covering to finish cooking. The cheese melts into a delicious crust.
- Bacon sage – Cook 4 slices of bacon in the skillet before browning the meatballs. Remove bacon, crumble it, and use the rendered fat to brown the meatballs. Add bacon crumbles back with the sauce.
- Mushroom sage – After removing the meatballs, sauté 8 oz sliced mushrooms in the butter before adding sage and garlic. Continue as directed.
- Dairy-free – Use olive oil or vegan butter for the sauce and omit the Parmesan (or use a dairy-free alternative). The meatballs can use nutritional yeast instead of Parmesan.
- Gluten-free – Use gluten-free breadcrumbs or almond flour and ensure the chicken broth is gluten-free.
Storage and Reheating
Fridge
Store leftover meatballs and sauce in an airtight container in the refrigerator for up to 4 days. The flavors will continue to meld and may even taste better the next day.
Freezer
Let the meatballs cool completely, then transfer them along with the sauce to a freezer-safe container or zip-top bag. Freeze for up to 3 months. For easy meal prep, freeze in individual portions or in a single layer on a baking sheet first, then transfer to a bag.
Reheating
To reheat from the fridge, place the meatballs and sauce in a skillet over medium-low heat, adding a splash of broth or water if the sauce has thickened. Cover and heat until warmed through, about 5-7 minutes. You can also microwave in 30-second bursts, stirring in between. From frozen, thaw overnight in the fridge and reheat as above, or reheat directly from frozen in a covered skillet over low heat, adding extra broth, for about 10-12 minutes.
FAQ
Can I use ground turkey instead of chicken? Yes, ground turkey works perfectly. It has a slightly stronger flavor but the same texture. You may need to add an extra tablespoon of breadcrumbs if the mixture feels too wet.
How do I know when the meatballs are cooked through? The internal temperature should reach 165°F (74°C). If you don't have a thermometer, cut one open: the center should be white, not pink, and juices should run clear.
Can I make these meatballs gluten-free? Absolutely. Use gluten-free breadcrumbs or substitute with almond flour (use ⅓ cup). Also check that your chicken broth is certified gluten-free.
Can I prepare these meatballs ahead of time? Yes, you can form the meatballs up to 24 hours ahead and keep them in the fridge. Alternatively, you can fully cook them, let cool, and refrigerate for up to 4 days or freeze for up to 3 months. Reheat as directed.
What can I serve with these meatballs? Mashed potatoes, creamy polenta, egg noodles, rice, or crusty bread are all excellent choices. For vegetables, try roasted Brussels sprouts, green beans, or a simple arugula salad.
Can I skip the heavy cream? Yes, the sauce is still delicious without it. The cream adds richness but is optional. For a dairy-free alternative, use full-fat coconut milk.
My meatballs turned out dry. What went wrong? Overmixing the meat or overcooking them are the most common causes. Mix gently and check the internal temperature after the simmering time. Also, use ground chicken with a bit of fat (90/10) rather than extra-lean.
Can I use dried sage instead of fresh? Yes. Use 1 teaspoon dried sage in the meatballs. For the sauce, you can add 1 teaspoon dried sage flakes along with the garlic, but fresh sage makes the best crisp texture for garnish.
How do I get a really crispy crust? Use a hot pan and don't overcrowd. Pat the formed meatballs dry with a paper towel before searing to remove excess moisture. Cook in batches if necessary.
Is this recipe kid-friendly? Yes! Kids usually love the mild, buttery flavor. If your kids are sensitive to sage, you can reduce the amount slightly. You can also omit the sage and use a simple butter-garlic sauce.
Nutrition Information
Nutritional values are estimated and can vary depending on the ingredients used.
Save this recipe
Print and download options unlock in 30 seconds.
