Prep the oven and pan: Preheat the oven to 400°F (200°C). Lightly grease a baking dish or line with parchment.
Keep a large skillet on the stove for the sear.
Wilt the spinach: Heat 1 teaspoon olive oil over medium. Add fresh spinach and a pinch of salt. Stir until wilted, 1–2 minutes.
If using frozen spinach, skip the wilting and just squeeze out excess moisture. Transfer spinach to a cutting board and chop roughly.
Make the filling: In a bowl, combine chopped spinach, cream cheese, mozzarella, Parmesan, garlic, 1/2 teaspoon Italian seasoning, a pinch of red pepper flakes if using, a little lemon zest, and a good pinch of salt and pepper. Mix until creamy and well combined.
Prepare the chicken: Pat chicken dry.
Using a sharp knife, cut a horizontal pocket in the thickest side of each breast, stopping about 1/2 inch from the other side. Don’t cut all the way through.
Season generously: Rub the outside of each breast with 1 tablespoon olive oil total. Sprinkle both sides with salt, pepper, paprika, onion powder, and the remaining Italian seasoning.
Stuff the chicken: Spoon the spinach-cheese mixture evenly into the pockets.
Don’t overfill. If needed, secure the opening with toothpicks to keep the filling inside.
Sear for color: Heat the skillet over medium-high. Add a thin film of oil.
Sear the stuffed chicken 2–3 minutes per side until lightly golden. Work in batches if needed, and handle gently.
Bake to finish: Transfer seared chicken to the baking dish. Bake 12–18 minutes, depending on thickness, until the internal temperature reaches 165°F (74°C) in the thickest part.
Rest and serve: Let the chicken rest 5 minutes.
Remove toothpicks. Squeeze a little lemon over the top, sprinkle with parsley, and serve.