Bring a large pot of water to a boil. Add pasta to the boiling water and cook for 6 minutes; add the asparagus and peas to the pot and continue to cook for 3 more minutes or until al dente. Drain.
In the meantime, prepare the sauce and heat the olive oil in a large skillet over medium heat. Add onions and garlic and cook for 2 to 3 minutes, or until tender.
In a small mixing bowl combine flour and chicken broth; whisk until thoroughly incorporated.
Add the broth mixture to the onion mixture in the pan. Whisk in the milk; continue to whisk constantly and bring to a boil. Reduce heat and cook for 1 more minute, or until thickened.
Whisk in the cream cheese; stir until melted. Stir in the grated parmesan cheese and remove from heat—season with salt and pepper.
Add the pasta and vegetables to the sauce; stir until completely combined.
Remove from heat, garnish with parsley, and serve.
Notes
Asparagus: Cut or snap off and discard the woody ends before adding the asparagus to the pasta.
Peas: Use fresh, canned, or frozen peas. You don't have to thaw them if they are frozen.
Pasta: Farfalle Pasta can be replaced with classic, whole wheat, or gluten-free pasta. Great subs for farfalle are shells, orecchiette, mini penne, or small rigatoni.
Cream Cheese: The cream cheese needs to be at room temperature so that it blends and melts perfectly. If cold, it will curdle and not mix well with the other liquid.
Dairy-Free: You can replace skim milk and cream cheese with non-dairy alternatives for a vegan version of this dish.