Prep the peppers: Preheat oven to 375°F (190°C). Slice the tops off the bell peppers and remove seeds and membranes.
If they wobble, shave a thin slice off the bottom to help them stand. Place in a baking dish.
Soften the peppers (optional but recommended): Brush or drizzle with a bit of olive oil and a pinch of salt. Bake uncovered for 10–12 minutes to get a head start on tenderness.
Set aside.
Sauté aromatics: Heat olive oil in a large skillet over medium heat. Add onion with a pinch of salt and cook 3–4 minutes until translucent. Stir in garlic and cook 30 seconds, until fragrant.
Brown the beef: Add ground beef, breaking it up with a spatula.
Season with salt, pepper, Italian seasoning, smoked paprika, and red pepper flakes. Cook until browned with no pink remaining, about 5–7 minutes. Drain excess fat if needed.
Add tomato elements: Stir in tomato paste and cook 1 minute to caramelize slightly.
Add drained diced tomatoes and simmer 2–3 minutes to thicken.
Wilt the spinach: Add fresh spinach in batches, tossing until wilted, 1–2 minutes. If using frozen spinach, thaw and squeeze out excess water first, then stir in to warm through.
Cheesy finish: Off the heat, fold in half the mozzarella and all the Parmesan. Taste and adjust salt and pepper.
Fill the peppers: Spoon the beef-spinach mixture into each pepper, mounding slightly.
Top with remaining mozzarella.
Bake: Return to the oven and bake 15–20 minutes, until the peppers are tender and the cheese is melted and golden in spots.
Garnish and serve: Let cool for 5 minutes. Sprinkle with chopped parsley or basil. Serve warm.