In a large skillet or Dutch oven, heat the olive oil over medium heat. Add chopped onions and sauté for 3–4 minutes until soft. Stir in garlic and cook for another minute until fragrant.
Add ground beef and sausage, breaking it up with a spoon. Cook until browned and no longer pink, about 8–10 minutes. Season with salt, pepper, and red pepper flakes if using.
Stir in tomato paste and let it cook for 2 minutes to deepen the flavor. Pour in the crushed tomatoes and tomato sauce. Add sugar, oregano, basil, thyme, and bay leaf. Bring the sauce to a simmer, reduce heat, and let it cook for 20–25 minutes uncovered, stirring occasionally until thickened. Discard bay leaf.
Prepare the Ricotta Mixture
In a medium mixing bowl, combine ricotta cheese, egg, Parmesan, nutmeg, salt, and parsley. Stir until well blended and smooth. Set aside.
Cook the Noodles
Bring a large pot of salted water to a boil. Cook lasagna noodles until al dente, about 8 minutes. Drain and lay them flat on a baking sheet or parchment paper to prevent sticking.
Assemble the Lasagna
Preheat your oven to 375°F (190°C). In a 9x13 baking dish, spread a thin layer of meat sauce on the bottom.
Layer 3 noodles over the sauce, slightly overlapping if needed. Spread one-third of the ricotta mixture over the noodles, then sprinkle with one-third of the mozzarella and a few spoonfuls of meat sauce.
Repeat this layering twice more—noodles, ricotta, mozzarella, sauce—until all ingredients are used. Finish with a layer of meat sauce and top with remaining mozzarella and Parmesan.
Bake
Cover the dish with aluminum foil (tent it so it doesn’t touch the cheese). Bake for 25 minutes. Remove foil and bake uncovered for another 20–25 minutes until the top is bubbly and golden.
Let rest for at least 15 minutes before slicing. This helps everything set up beautifully and makes serving much easier.