Preheat and prep: Heat the oven to 400°F (200°C). Line a baking sheet with parchment or lightly grease a baking dish.
Wilt the spinach: Add a splash of olive oil to a skillet over medium heat.
Cook fresh spinach for 1–2 minutes until wilted. Transfer to a cutting board, cool slightly, and chop. If using frozen spinach, thaw completely and squeeze out excess water.
Make the filling: In a bowl, combine cream cheese, Parmesan, mozzarella (if using), garlic, chopped spinach, lemon zest, a pinch of red pepper flakes, 1/2 teaspoon salt, and a few grinds of pepper.
Mix until smooth and evenly combined.
Butterfly the chicken: Place a chicken breast on a board. With your hand flat on top, use a sharp knife to slice horizontally to create a pocket, keeping one side intact. Repeat with all breasts.
Pat dry and season the outside with salt, pepper, and Italian seasoning or paprika.
Stuff and secure: Spoon the filling into each pocket, dividing evenly. Don’t overfill. Secure the open edge with 2–3 toothpicks to keep the filling inside.
Sear for color: Heat a large oven-safe skillet over medium-high.
Add olive oil (and butter for extra browning). Sear stuffed chicken 2–3 minutes per side until golden. Work in batches if needed, adding a bit more oil between batches.
Bake to finish: Transfer skillet to the oven (or move chicken to the prepared baking dish).
Bake 12–15 minutes, or until the thickest part reaches 165°F (74°C).
Rest and serve: Let rest 5 minutes. Remove toothpicks. Spoon any pan juices over the top.
Serve with lemon wedges, roasted vegetables, rice, or a simple salad.