What airlines would you recommend for flying from Paris to Milan?
The one with the best schedule for you and price. You can land at MXP
( Malpensa) or closer to the city at LIN (Linate). No immigration at arrival as you are within Schengen zone.
Linate airport is scheduled to be closed from July 27 to Oct 27 for paving, so if your trip is during that time MXP is where you will go.
Any airline the goes to Milan directly except Ryanair.
Check the possibilities on Skyscanner.
We had a perfect flight with Ryannair and chose it as it was the only non stop flight.
Paris to Milan on Ryanair is actually from Paris Beauvais (way outside of Paris) to Bergamo (way outside of Milan). Thus the warning.
Easyjet flies nonstop from both CDG and Orly to MXP. And Linate when its open.
My preferred budget airline in Europe is easyJet and I use them whenever possible. if you decide to travel with them, be sure to read the "Terms & Conditions", especially with baggage rules.
The overall trip from Paris to Milan by air will probably be about six hours, when all is considered (travel to & from airports, check-in, security, boarding & deplaining, etc.). The shortest rail trip on that route will be about 7.5 hours (with one change) and that's probably the method I'd use as it will be much more pleasant than the usual airport "dog & pony show".
To add to the above, an enjoyable way to reach Milan by train from Paris is to go via Geneva or Lausanne, most connections can give you time for lunch in either of these cities, and the lakeside ride in Switzerland is very scenic. That train also stops in Stresa on Lake Maggiore, if you have an Italian Lakes destination in mind.
But if course, if you are a bit short of time, flying is a couple hours faster. It is also more convenient if you're simply picking up a car in Milan.
We flew from Milan to CDG Paris on Air France in late May. For a connecting flight, also on Air France, back home to Seattle. Had to get up quite early, as it was the first Air France flight of the day (departing 6 am) but that meant no traffic on the way to the Milan airport. It otherwise all went very smoothly.
I will never take anything but a nonstop from the west coast to Europe (or back) again. Its a little more expensive, but only having to suffer in the tin can for a (relatively) short time, and arriving in Europe without having had a long layover, is more than worth it. Air France has a daily nonstop from Seattle with more or less reasonable prices.
We took Air France from Paris to Venice and Milan to Paris recently. Everything went fine.