Cook noodles (if using regular). Boil lasagna noodles in salted water until just al dente. Drain and lay flat on a sheet pan so they don’t stick. (Skip if using no-boil.)
Make the meat sauce. Heat olive oil in a large pot over medium heat. Add onion and cook 4–5 minutes until soft. Add garlic and cook 30 seconds. Add beef and cook until browned, breaking it up. Drain excess grease if needed.
Season and simmer. Stir in salt, pepper, tomato paste, oregano, basil, and red pepper flakes. Cook 1 minute. Add marinara and crushed tomatoes. Simmer 15–20 minutes. If the sauce gets too thick, add a splash of water or broth.
Mix ricotta layer. In a bowl, stir ricotta, egg, Parmesan, parsley, and a pinch of salt and pepper until combined.
Assemble. Heat oven to 375F. In a 9x13 dish, spread a thin layer of sauce. Add a layer of noodles. Spread 1/3 of the ricotta mixture, sprinkle mozzarella, then spoon sauce over the top. Repeat layers (noodles, ricotta, mozzarella, sauce) until you finish with sauce on top. Sprinkle remaining mozzarella (and extra Parmesan if using).
Bake. Cover loosely with foil (spray foil with oil so cheese doesn’t stick). Bake 35 minutes. Uncover and bake 15–20 minutes more until bubbly and golden.
Rest and serve. Let lasagna rest 15–20 minutes before slicing for clean layers.