As you have already surmised, there are no direct links by train, rail or air between Faro and Malaga - or for that matter between Faro and any Spanish Mainland city.
Viamichelin.com quotes as follows for the drive by car from Faro to Malaga:
Distance: 414km including 397km on motorways
Estimated drive time:04h18
You should note that it is very expensive to do inter-country drop-offs with hire cars between Spain and Portugal and vice versa.
Air is not really feasible as you would have to travel to Lisbon, get a low cost to Madrid and then another low-cost to Malaga.
Rail is essentially the same.
There is a bus service operated by www.alsa.es with a bus change in Seville at Plaza das Armas Bus Station as follows:
Town Dept
FARO 02:00
VILA REAL ST ANTONIO 02:45
AYAMONTE 04:00
HUELVA 04:30
SEVILLA 05:45
MALAGA 08:45
This would be the most direct.
You might also be able to catch one of the two daily buses operated by DAMAS/EVA from Faro to Seville (weekdays only in winter.)
Have a look at this page on Cubsur's site for more info:
http://thomasallen.home.sapo.pt/travel/001.htm
From Seville there will be several daily services to Malaga from either Plaza das Armas or Prado Bus Stations including these services operated by ALSINA GRAELLS SUR, S.A.
02:50 03:30 TODA LA SEMANA
11:00 03:30 TODA LA SEMANA
12:00 03:30 TODA LA SEMANA
14:00 03:30 DE LUNES A SABADOS
16:00 03:30 TODA LA SEMANA
17:40 03:30 TODA LA SEMANA
19:00 03:30 VIERNES Y DOMINGO
20:15 03:30 TODA LA SEMANA
20:30 03:30 TODA LA SEMANA
22:00 03:30 TODA LA SEMANA
23:58 03:30 A VIERNES DOMINGOS Y FESTIVO
Alternatively, you could get a cab from Seville Plaza das Armas to Estacion Stª. Justa Train Station and get the AVE high speed train to Malaga changing at Cordoba.
This will probably be very expensive and probably not save much time.
For more info check out the spanish railways site
www.renfe.es.
Hope this helps