Make the meat sauce: in a large skillet, heat the olive oil over medium-high heat and Sauté the onions and garlic over medium heat for 5–7 minutes, or until softened and fragrant.
Add the ground beef and ground pork and cook until no pink is left on the meat. Drain the excess fat and season with salt and pepper.
Mix in the tomato paste, diced tomatoes, sugar, basil, oregano, and red pepper flakes. For extra flavor depth, stir in 1 teaspoon Worcestershire sauce and 1 teaspoon hot sauce (like Frank’s). These won’t make it spicy but will enhance the overall richness. Bring to boil, reduce the heat, and simmer for 15 mins. Season with salt and pepper to taste. Preheat the oven to 350 F.
Make the ricotta filling: in a medium-sized bowl mix the ricotta cheese, egg, dried basil, salt and pepper until smooth.
Boil lasagna noodles in generously salted water until al dente (follow box time), stirring occasionally to prevent sticking. Stir occasionally, then drain and lay them flat on parchment or foil to prevent sticking. Or, use no-boil or fresh lasagna sheets to save time — no pre-cooking needed. Drain and set aside.
Grease the bottom and sides of a 9x13-inch baking dish and spoon enough meat sauce to cover the bottom of the dish.
Place three lasagna noodles on top of the meat sauce, followed by ⅓ of the remaining meat sauce. Dollop ⅓ of the ricotta filling in 6–8 small spoonfuls across the sauce. Gently spread, or leave the dollops as-is — the cheese will melt evenly while baking. Top with 1 cup of shredded mozzarella.
Repeat the layers twice more, ending with mozzarella cheese. Sprinkle the parmesan over the last layer of mozzarella and cover with foil (spray the underside with cooking spray to prevent cheese from sticking). Bake for 40 minutes. Remove the foil and bake another 10–15 minutes until the top is golden, bubbling, and fully melted. Let the lasagna rest for 15 minutes before slicing. This helps the cheese set and ensures clean, sturdy layers when serving.