Boil the noodles. Bring a large pot of salted water to a boil. Cook lasagna noodles until just shy of al dente; they’ll finish in the oven.
Drain and lay flat on a lightly oiled sheet to prevent sticking.
Preheat the oven. Set to 375°F (190°C). Lightly oil a 9x13-inch baking dish and spread 1 cup of marinara on the bottom.
Brown the beef. Heat olive oil in a skillet over medium. Add onion and cook until soft, 3–4 minutes.
Stir in garlic for 30 seconds, then add ground beef. Season with salt, pepper, Italian seasoning, and red pepper flakes if using. Cook until browned, breaking it up as it cooks.
Drain excess fat.
Simmer with sauce. Stir in 1–1 1/2 cups of marinara to the beef and let it bubble for 2 minutes. Taste and adjust seasoning. Remove from heat and cool slightly.
Make the ricotta mixture. In a bowl, combine ricotta, 1 cup mozzarella, 1/4 cup Parmesan, egg, chopped basil or parsley, and a pinch of salt and pepper.
Mix until smooth.
Assemble the rolls. Lay a noodle flat. Spread 2 tablespoons of the ricotta mixture from end to end. Spoon a line of beef mixture over the ricotta.
Roll gently from one short end to the other. Repeat with remaining noodles.
Arrange in the dish. Place rolls seam-side down in the prepared dish. Spoon remaining marinara over the top, covering the noodles well to prevent dryness.
Top with cheese. Sprinkle remaining mozzarella and Parmesan evenly over the rolls.
Bake. Cover loosely with foil and bake for 20 minutes.
Remove foil and bake another 10–15 minutes, until the cheese is bubbly and lightly golden.
Rest and serve. Let the rolls rest for 5–10 minutes to set. Garnish with fresh herbs and serve warm.