Preheat oven to 350 degrees Fahrenheit. Spray a 9 x 13 inch baking dish with nonstick cooking spray and set aside.
In a large sauté pan over medium heat, add olive oil, diced onion, diced bell pepper, and ground beef. Cook for 8 to 10 minutes until the beef is no longer pink and the onions are translucent.
Add garlic, baby spinach, salt, black pepper, Italian seasoning, and drained diced tomatoes. Stir to combine and cook for 5 to 6 minutes until the spinach wilts. Remove from heat.
Bring a large pot of water to a boil. Cook egg noodles for 3 minutes (they will continue cooking in the oven). Reserve 2 cups of pasta water, then drain noodles.
Add drained noodles to the beef mixture and stir to combine.
In a mixing bowl, whisk together 1/2 cup of the reserved pasta water, sour cream, softened cream cheese, and cornstarch until smooth.
Spread the beef and noodle mixture evenly into the prepared baking dish. Spread the sour cream mixture evenly over the top. Sprinkle grated cheddar cheese and shredded mozzarella cheese evenly over the casserole.
Bake uncovered for 25 to 30 minutes, until the cheese is melted, bubbly, and lightly browned.
Let rest for 5 to 10 minutes before serving. Garnish with fresh chopped parsley if desired.