Classic From-Scratch Meat Lasagna With Creamy Ricotta — 100% Homemade

This is the lasagna you make when you want to do it properly.

Not the version with jarred sauce and a prayer.
Not the shortcut version.
The real one — with a from-scratch meat sauce that simmers until it’s deep and rich, a properly seasoned ricotta filling, perfectly layered noodles, and enough mozzarella to pull dramatically when you lift a slice.

It takes about 90 minutes start to finish.

Most of that is hands-off simmering and baking.

And the result is genuinely better than anything you’ve ordered at a restaurant — because you control every layer, every seasoning, and every decision.

This is the recipe. Let’s make it properly. 🍝

Classic From-Scratch Meat Lasagna — Kitchen Guide 101

Classic From-Scratch Meat Lasagna — Recipe Card

Saves as PDF to your device

Why From-Scratch Makes All the Difference

Store-bought marinara is convenient — but it’s also the single biggest reason most homemade lasagnas taste like homemade lasagna rather than restaurant lasagna.

A from-scratch meat sauce takes 30–35 minutes and transforms everything. You’re building flavor in layers: browning the meat properly (not just cooking it through), caramelizing the onion and garlic, blooming the tomato paste, and letting the whole thing reduce until it’s thick enough to hold between layers without making the pasta soggy.

That sauce is what makes this version worth making.

Ingredients

Serves: 8–10 | Prep Time: 30 minutes | Cook Time: 60 minutes | Total Time: 1 hour 30 minutes | Pan Size: 9×13 inch

For the From-Scratch Meat Sauce

  • 1 lb (450g) ground beef (80/20 — the fat carries flavor)
  • ½ lb (225g) Italian sausage, casings removed (optional but highly recommended)
  • 1 medium white onion, finely diced
  • 4 garlic cloves, minced
  • 2 tbsp tomato paste
  • 1 can (28 oz / 800g) crushed San Marzano tomatoes
  • 1 can (14 oz / 400g) diced tomatoes
  • 1 tsp dried oregano
  • 1 tsp dried basil
  • ½ tsp fennel seeds (the secret Italian sausage flavor — even without sausage)
  • ½ tsp red pepper flakes
  • 1 tsp sugar (balances the tomato acidity)
  • Salt and black pepper to taste
  • 2 tbsp olive oil

For the Ricotta Filling

  • 32 oz (900g / 2 tubs) whole-milk ricotta cheese (full-fat only — part-skim gets watery)
  • 1 large egg
  • ½ cup (50g) Parmesan cheese, freshly grated
  • 2 tbsp fresh parsley, finely chopped (or 1 tsp dried)
  • 1 tsp garlic powder
  • ½ tsp salt
  • ¼ tsp black pepper
  • ¼ tsp ground nutmeg (classic Italian touch — don’t skip it)

For Assembly

  • 12–15 lasagna noodles (regular dried, not no-boil — they give better texture)
  • 3 cups (300g) low-moisture mozzarella, shredded (not fresh — fresh is too watery)
  • ½ cup (50g) Parmesan cheese, freshly grated
  • Fresh basil leaves for garnish (optional)

Equipment You’ll Need

  • Large deep skillet or Dutch oven
  • Large pot for boiling noodles
  • 9×13 inch baking dish (glass or ceramic preferred)
  • Mixing bowl
  • Aluminum foil

Step-by-Step Instructions

Step 1 — Make the From-Scratch Meat Sauce (30–35 minutes)

  • Heat olive oil in a large skillet or Dutch oven over medium-high heat until shimmering.
  • Add the ground beef and Italian sausage. Do not stir immediately — let it sit for 2 minutes to develop a brown crust. This browning (Maillard reaction) is where the deep flavor comes from. Then break it up and cook until fully browned, about 8 minutes total.
  • Drain excess fat — leave about 1 tablespoon in the pan for flavor.
  • Push the meat to the side. Add onion to the empty side of the pan and cook over medium heat for 5 minutes until softened and slightly golden.
  • Add garlic and cook 1 minute until fragrant.
  • Add tomato paste. Stir and cook for 2 minutes, stirring constantly — this “blooms” the tomato paste and removes the raw taste.
  • Add crushed tomatoes, diced tomatoes, oregano, basil, fennel seeds, red pepper flakes, and sugar.
  • Stir everything together and bring to a simmer.
  • Reduce heat to low and simmer uncovered for 20–25 minutes, stirring occasionally, until the sauce has thickened considerably and the oil has separated slightly from the surface. This is your sign it’s ready.
  • Taste and adjust salt and pepper. The sauce should be slightly over-seasoned — it will mellow when baked with the other layers.

Step 2 — Make the Ricotta Filling (5 minutes)

  • Combine ricotta, egg, Parmesan, parsley, garlic powder, salt, pepper, and nutmeg in a large bowl.
  • Mix thoroughly until completely smooth.
  • Taste it. It should taste genuinely good on its own — season more if needed. Underseasoned ricotta is the second most common lasagna mistake after thin sauce.
  • Set aside.

Step 3 — Cook the Noodles (10 minutes)

  • Bring a large pot of generously salted water to a rolling boil. The water should taste like the sea.
  • Cook lasagna noodles for 2 minutes less than the package directions (they’ll finish cooking in the oven).
  • Drain and lay flat on a lightly oiled baking sheet to prevent sticking. Don’t pile them — they’ll stick together.

Step 4 — Assemble the Lasagna

Preheat oven to 375°F (190°C).

Layer in this exact order:

LayerWhat Goes In
1 (bottom)Thin layer of meat sauce (prevents sticking)
23–4 noodles (slightly overlapping)
3½ of the ricotta filling — spread to edges
41 cup shredded mozzarella
5Generous ladle of meat sauce
63–4 noodles
7Remaining ricotta filling
81 cup mozzarella
9Generous ladle of meat sauce
103–4 noodles (final layer)
11 (top)All remaining sauce + 1 cup mozzarella + Parmesan

Key tip: Every layer of sauce should reach the edges of the pan — exposed pasta edges burn and dry out.

Step 5 — Bake

  • Cover tightly with aluminum foil. Spray the underside of the foil with cooking spray so it doesn’t stick to the cheese.
  • Bake at 375°F (190°C) for 25 minutes covered.
  • Remove foil and bake for an additional 20–25 minutes until the top is deep golden brown and bubbly.
  • The lasagna is done when a knife inserted in the center comes out hot to the touch.
  • Rest for 15 minutes before cutting. This is not optional — cutting immediately causes the layers to slide. The rest allows everything to set into clean, stackable slices.

The Layering Visual Guide

TOP →  Remaining Meat Sauce + Mozzarella + Parmesan
       Noodles (3-4, overlapping slightly)
       Meat Sauce
       Mozzarella (1 cup)
       Remaining Ricotta Filling
       Noodles (3-4, overlapping slightly)
       Meat Sauce
       Mozzarella (1 cup)
       Half the Ricotta Filling
       Noodles (3-4, overlapping slightly)
BOT →  Thin layer of Meat Sauce (prevents sticking)

Lasagna Layering Guide — Kitchen Guide 101

Lasagna Layering Guide

Saves as PDF to your device

Pro Tips That Make the Difference

Use whole-milk ricotta. Part-skim ricotta releases water during baking and makes the layers soupy. The full-fat version stays creamy and holds its shape.

Brown the meat properly. Don’t add the onion until the meat has actual browning on it. Gray cooked meat ≠ browned meat. You want caramelization, not steaming.

Simmer the sauce until thick. A thin sauce makes soggy lasagna. It should be thick enough that when you drag a spoon through it, the line holds for a few seconds.

Under-cook the noodles. They cook more in the oven. Al dente going in = perfect coming out. Fully cooked going in = mushy coming out.

Rest, rest, rest. 15 minutes minimum. If you’re making this for guests, make it 30 minutes — it will still be piping hot inside and the slices will be perfect.

Season every layer. The ricotta, the sauce, between layers — don’t rely on the sauce alone to carry the flavor.

Make-Ahead Strategy

Assemble the night before: Assemble completely, cover tightly with foil, and refrigerate overnight. Add 15 extra minutes to the covered baking time when cooking from cold.

Freeze before baking: Assemble in a freezer-safe dish, cover with foil, and freeze for up to 3 months. Thaw in the fridge overnight before baking. Bake as directed, adding 20 extra minutes covered.

Freeze after baking: Cool completely. Cut into individual portions, wrap each tightly in foil and cling film. Freeze up to 3 months. Reheat individual pieces covered at 350°F (175°C) for 25 minutes.

Best day: Lasagna is genuinely better on day 2. The layers compress, the flavors deepen, and the slices cut perfectly. Make it Sunday, refrigerate, eat Monday.

Storage & Reheating

MethodDurationInstructions
RefrigeratorUp to 5 daysCovered tightly with foil or in airtight container
FreezerUp to 3 monthsWrapped individually in foil + cling film
Reheat (oven)350°F (175°C), covered, 25 min for full pan
Reheat (microwave)Individual slice, covered, 2–3 min on medium

Variations

Vegetarian Lasagna — Replace the meat entirely with: sautéed mushrooms (brown them well so they don’t release water), wilted spinach (squeeze ALL water out), and roasted zucchini. Keep everything else identical.

White Lasagna (No Red Sauce) — Replace the meat sauce with a béchamel (butter + flour + milk + Parmesan). Use chicken, mushrooms, or spinach as the filling. Completely different dish, equally impressive.

Spicy Lasagna — Double the red pepper flakes and add ½ tsp smoked paprika to the sauce.

Three-Cheese Lasagna — Add a layer of sliced provolone between the ricotta and mozzarella layers.

What to Serve With It

Garlic bread — Essential. The best use for leftover sauce is dunking bread into it.

Simple green salad — Romaine, cherry tomatoes, olives, red onion, Italian dressing. The acidity cuts through the richness perfectly.

Wine — Chianti Classico is the traditional pairing. A Montepulciano d’Abruzzo or a California Zinfandel also work beautifully.

Common Mistakes (And How to Avoid Them)

Watery lasagna — Sauce too thin, ricotta not drained, fresh mozzarella used. Fix: thicken the sauce, use whole-milk ricotta, use low-moisture mozzarella.

Dry or burnt edges — Sauce didn’t reach the edges, oven too hot, or no foil for the first baking phase. Fix: sauce to every edge, foil on for first 25 minutes.

Layers sliding when cut — Cut too soon. Fix: rest 15 minutes minimum.

Bland taste — Under-seasoned ricotta and under-developed sauce. Fix: season every layer, brown the meat properly, simmer the sauce long enough.

Mushy pasta — Noodles fully cooked before baking. Fix: under-cook by 2 minutes before assembly.

FAQ

Can I use no-boil noodles?

Yes, but you need more sauce — no-boil noodles absorb liquid from the surrounding sauce to cook. If your sauce is thick, the noodles will stay hard. Add ¼ cup water or extra sauce per layer if using no-boil.

Can I make it without meat?

Absolutely — see the vegetarian variation above. The from-scratch tomato sauce without meat is still deeply flavorful.

Why does my lasagna look watery when I cut it?

Three reasons: sauce too thin, ricotta released water (part-skim or over-mixed), or cut before resting. Identify which applies and fix for next time.

Can I double the recipe?

Yes — use two 9×13 pans. Don’t try to fit it all in one deep pan — it won’t cook evenly.

The Bottom Line

Classic from-scratch lasagna isn’t complicated — it just requires doing each part properly rather than cutting corners.

Make the sauce from scratch. Season the ricotta. Under-cook the noodles.
Layer generously.
Rest before cutting.

Do those five things and this will be the best lasagna you’ve ever made at home — and the one your family asks for on repeat. 🍝

📌Related Read:

Lasagna Recipe with Bechamel Sauce for a Creamy, Authentic Texture
Lasagna with Ravioli Recipe for an Easy Layered Pasta Bake
Lasagna Soup Recipe That Tastes Just Like Traditional Lasagna