I'd do Faro anyday, but not for the town, it's the surrounding area that's amazing.
Olhao, Tavira & Fuseta (all within 30 mins) some of the nicest places I've visited and the Rio Formosa Natural Park is absolutely stunning. It's a lagoon, filled with natural habitat and has five barrier islands.
You can do day trips (for 2 euros!) to these islands and have lunch and wander around etc, they don't have any cars and are pedestrian only and really arty and lovely. The light house island has the prettiest police station ever!
In Olhao it has gorgeous old tiles and lovely architecture, really amazing hidden restaurants as there's a large daily fisdh and food market there every day, I think it's the largest in southern Portugal at least, so really good food in the area! From my understanding from locals it's a good up and coming area.
Tavira is more upmarket, it has lots of french ex pats, so has a cool vibes, especially so close to Spain. The beaches and walks around there are gorgeous too.
Less than 10 mins from the airport is Praia de Faro, which is a wide expansive beach, I've stayed here for a few days, and there's a few nice cocktail bars and restaurants - but is very quiet and not sure if it will be open this time of year.
Albuifera is good if you want a port and wander around the super yachts, this time if year it's still fairly busy.
I've sunbathed on the beach New years day in the Algarve, so you may get some good weather!