Preheat and prep: Heat the oven to 375°F (190°C). Grease a 9x13-inch baking dish with nonstick spray or butter.
Cook the pasta: Bring a large pot of salted water to a boil. Cook the pasta to just shy of al dente, 1–2 minutes less than package directions.
Drain and set aside.
Brown the beef: In a large skillet over medium-high heat, warm the olive oil. Add the ground beef and cook, breaking it up with a spoon, until browned and no longer pink. Season with a pinch of salt and pepper, then drain excess fat if needed.
Sauté aromatics: Add the diced onion to the beef and cook until softened, 3–4 minutes.
Stir in the garlic and cook 30 seconds, just until fragrant.
Build the sauce: Stir in the tomato sauce, drained diced tomatoes, Italian seasoning, smoked paprika, and red pepper flakes if using. Simmer 5–7 minutes to let flavors meld. Taste and adjust salt and pepper.
Make it creamy: Turn off the heat and fold in the sour cream until the sauce looks creamy and smooth.
This gives the casserole a rich, tangy base that won’t dry out.
Combine with pasta: Add the cooked pasta to the skillet and toss to coat evenly. If the skillet is too full, mix everything together in a large bowl.
Layer and top: Pour the mixture into the prepared baking dish. Sprinkle the shredded cheese evenly over the top.
For extra flavor, add a pinch of black pepper over the cheese.
Bake: Place the dish on the center rack and bake for 18–22 minutes, until the cheese is melted, bubbly, and lightly golden around the edges.
Rest and serve: Let the casserole rest 5–10 minutes. This helps it set for cleaner slices. Garnish with chopped parsley or chives and serve warm.