Heat olive oil in a large Dutch oven or skillet over medium-high heat. Add diced onion and cook 8-10 minutes until softened. Add ground beef and Italian sausage, breaking into crumbles, and cook 10-12 minutes until browned. Drain excess fat if needed.
Add minced garlic and cook 1 minute. Stir in crushed tomatoes, tomato paste, sugar, basil, oregano, salt, black pepper, and optional red pepper flakes. Simmer uncovered on low for 30-40 minutes until thickened. Set aside.
Boil lasagna noodles in salted water until al dente (8-10 minutes or 2 minutes less than package). Drain but do not rinse, then lay flat on an oiled baking sheet to prevent sticking. Skip if using no-boil noodles.
In a medium bowl, mix ricotta cheese, eggs, grated Parmesan, chopped parsley, salt, and black pepper until smooth and creamy. Set aside.
Preheat oven to 375°F (190°C). Grease a 9x13 inch baking dish. Spread 1 1/2 cups meat sauce on the bottom. Layer 4 noodles, one-third ricotta mixture, 1 cup mozzarella, and 1 1/2 cups sauce. Repeat twice more. Top with final noodles, remaining sauce, 1 cup mozzarella, and 1/2 cup Parmesan.
Cover tightly with foil (sprayed underside with cooking spray) and bake 45 minutes. Remove foil and bake uncovered 15-20 minutes until cheese is golden and bubbly. Optional: broil 2-3 minutes for extra browning.
Let lasagna rest 15-20 minutes before slicing into 12 squares. Garnish with fresh parsley if desired. Serve with extra Parmesan.