Bring a large pot of salted water to a boil and add the pasta, cooking until just al dente according to package directions. While the pasta cooks, dice the onions into 1/4-inch pieces, mince the garlic cloves, and grate the parmesan cheese. When the pasta is done, reserve 1 cup of the pasta water before draining—this starchy liquid is essential for creating a silky sauce without cream. Set the drained pasta aside.
Pat the salmon chunks dry with paper towels and season generously with salt and black pepper on all sides. Heat 3 tablespoons of olive oil in a large skillet over medium-high heat until shimmering. Add the salmon and cook for 3-4 minutes without moving it—this develops a golden exterior and keeps the fish moist inside. Flip each piece and cook for an additional 2-3 minutes until cooked through. Transfer the salmon to a plate; I like to break the larger pieces into smaller, bite-sized chunks at this point to ensure even distribution throughout the dish.
In the same skillet with the salmon fat, add the diced onions and cook for about 1 minute until they begin to soften and become translucent. Add the 2 tablespoons of butter along with the minced garlic and dried parsley, cooking for just 30 seconds—this blooms the garlic and allows the butter to carry these flavors without burning them. Add about 20% of the cooked salmon pieces back to the pan along with a generous pinch of red pepper flakes and black pepper, cooking for another 30 seconds to marry the flavors. I find that adding a portion of the salmon early helps build a richer, more integrated sauce.
Slowly pour in the lukewarm milk, stirring constantly to prevent lumps from forming. Add 1/2 cup of the reserved pasta water and the freshly grated parmesan cheese, stirring until the cheese melts smoothly into a silky sauce. Cook for about 1 minute, allowing the sauce to thicken slightly. The pasta water adds a subtle starch that helps the sauce cling to the pasta, while the milk keeps it delicate and light—no heavy cream needed.
Add the cooked pasta from Step 1 to the sauce, stirring gently to coat every strand. Add the remaining salmon pieces (about 80% of the total) and toss everything together over medium heat for 30 seconds to warm through. If the pasta looks dry or the sauce seems too thick, add more of the reserved pasta water, a splash at a time, until you reach a silky consistency that lightly coats each piece of pasta.
Divide the salmon pasta among serving bowls and garnish with fresh lemon zest, additional grated parmesan, and a final pinch of red pepper flakes if desired. Serve immediately while the sauce is at its silkiest and the salmon is still warm.