Bring a large pot of salted water to a rolling boil, add lasagna noodles one at a time, and cook until al dente, about 8–10 minutes. Drain, rinse briefly with cool water, and lay flat on kitchen towels in a single layer.
Heat olive oil in a large skillet over medium-high heat, then add diced onion and cook for 4–5 minutes until softened. Add minced garlic and cook for 30–60 seconds, stirring constantly, until fragrant.
Add ground beef to the skillet, breaking it into small crumbles, and cook for 8–10 minutes until no pink remains. Drain excess fat, leaving about 1 tablespoon for flavor.
Stir in the pasta sauce, tomato sauce, dried basil, and oregano, then reduce heat to low and simmer for 10–15 minutes, stirring occasionally. Season with salt and pepper, then remove from heat.
In a medium bowl, combine ricotta, beaten eggs, Parmesan, parsley, and 1 cup of the shredded mozzarella. Season with salt and pepper and stir until smooth and spreadable.
Preheat oven to 350°F (175°C) and lightly grease a 13x9x2-inch baking dish. Spread ½ cup of meat sauce evenly across the bottom to prevent sticking.
Place 3 noodles lengthwise over the sauce, then spread one-third of the ricotta mixture and 1 cup of meat sauce over them. Repeat this process two more times for a total of three full layers.
Place the final 3 noodles on top, spread all remaining meat sauce over them to the edges, and sprinkle evenly with the reserved 1 cup of mozzarella and extra Parmesan if desired.
Cover the dish tightly with aluminum foil (tented so it doesn't touch the cheese) and bake on the center rack for 45 minutes.
Carefully remove the foil and bake for an additional 10–15 minutes until the cheese is melted, golden, and bubbling around the edges. The internal temperature should reach 165°F (74°C).
Remove the lasagna from the oven and let it rest for 10–15 minutes before cutting into squares. This allows the layers to set for clean, stable slices.