Cook the pasta: Bring a large pot of salted water to a boil.
Add spaghetti and cook until just shy of al dente. Reserve 1/2 cup of the starchy cooking water, then drain and set aside.
Make the meatball mixture: In a bowl, combine ground beef, breadcrumbs, egg, milk, 1/2 cup Parmesan, half the minced garlic, parsley, Italian seasoning, 1 teaspoon salt, and several grinds of pepper. Mix gently with your hands until combined; don’t overwork it.
Form the meatballs: Roll into 1 to 1.5-inch balls.
You should get about 18–22 meatballs. Place them on a plate or sheet pan.
Brown the meatballs: Heat olive oil in a large skillet over medium-high. Add meatballs in a single layer (work in batches if needed).
Sear until browned on all sides and mostly cooked through, about 6–8 minutes total. Transfer to a plate; they’ll finish cooking in the sauce.
Sauté aromatics: Reduce heat to medium. Add butter to the same pan.
Stir in chopped onion and a pinch of salt. Cook until soft and translucent, 3–4 minutes. Add remaining garlic and red pepper flakes; cook 30 seconds until fragrant.
Deglaze and build the sauce: Pour in broth and scrape up any browned bits.
Simmer for 2 minutes to reduce slightly. Stir in heavy cream and bring to a gentle simmer.
Finish the meatballs: Return meatballs and any juices to the pan. Simmer in the sauce for 5–7 minutes, until the meatballs are fully cooked and the sauce has thickened slightly.
Toss in the pasta: Add cooked spaghetti to the pan, plus a splash of reserved pasta water if the sauce seems too thick.
Toss until every strand is coated and glossy.
Season and brighten: Stir in remaining 1/4 cup Parmesan, a little lemon zest, and a squeeze of lemon juice. Taste and adjust with salt and pepper. The lemon should lift the richness without making it tart.
Serve: Top with extra Parmesan and chopped parsley.
Serve hot, with a green salad or steamed veggies if you like.