Bring a large pot of water to a boil. A pot with a steamer insert makes this easy, but if you don’t have one, a sieve works, too. Season the boiling water generously with salt, then drop in the spinach and sliced asparagus stalks (reserve the tips for later). Cook for about 1 minute, just to blanch the asparagus stalks. Retrieve the asparagus and spinach, drain and put into a blender or food processor.
In the same pot of water, cook the asparagus tips and peas for about 1 minute, remove with a slotted spoon and set aside.
Meanwhile, add the olive oil, garlic and Parmesan cheese to the blender with the asparagus stalks and spinach. Blend until smooth.
Bring the pot of water back to a boil again, then cook the fettuccine until al dente. If you are using fresh pasta, this should take about 2-3 minutes. Reserve 1 cup of pasta water, then drain the pasta, rinse under cool water and return to the empty pot.
Stir in the spinach mixture, butter and milk into the pasta, adding the pasta water about 1/4 cup at a time. You may or may not use all the pasta water, depending on the thickness of the sauce.
Add the reserved peas and asparagus tips. Cook over low heat, until the sauce comes together and is creamy. Season to taste with salt and pepper. Serve immediately with more grated Parmesan cheese.