This classic homemade lasagna is a tried-and-true Italian lasagna recipe with rich meat sauce, creamy béchamel (white sauce), and melty mozzarella. Perfect for a hearty family meal.
Heat olive oil in a large pot. Cook onion, carrot, and celery until soft. Add garlic and cook briefly. Add beef (and pork if using) and brown.
Stir in tomato paste, chopped tomatoes, and red wine. Season well. Simmer uncovered for 1–2 hours until thick.
Make the Béchamel:
Melt butter in a pan. Whisk in flour and cook for 1–2 minutes. Slowly whisk in milk until smooth and thick. Season with salt and nutmeg. Add Parmesan if using.
Assemble:
Preheat oven to 180°C (350°F). In a baking dish, layer meat sauce, béchamel, lasagna sheets, and Parmesan. Repeat layers.
Finish with sheets, béchamel, and mozzarella on top.
Bake:
Bake for 30–40 minutes until golden and bubbling. Rest for 10–15 minutes before serving.
Notes
Recipe Notes
This classic lasagna works because it balances rich, slow-cooked meat saucewith a creamy béchamel and structured pasta layers. The result is a deeply flavoured, comforting baked dish that slices cleanly and reheats beautifully.
Sauce thickness matters: Simmer the meat sauce until it is thick and rich. If it’s too watery, the lasagna layers may slide or become soggy.
Best cheese choice: Fresh mozzarella melts beautifully and gives that classic lasagna stretch. Parmesan adds depth and saltiness.
Make-ahead friendly: The meat sauce can be made 1–2 days in advance and stored in the fridge. This improves flavour.
Layering tip: Don’t overload each layer — thin, even layers help the lasagna hold its shape when sliced.
Resting time is essential: Let the lasagna rest for 10–15 minutes after baking so it sets properly and doesn’t fall apart.
Vegetable texture: Finely chop onion, carrot, and celery for a smoother, restaurant-style sauce texture.
Freezer friendly: Freeze baked or unbaked portions for easy future meals.