Federico Bernardeschi and Khouma Boubacar scored before the break in Lisbon and a Tonel own goal made it three before Giuseppe Rossi scored his first goal since May last year after injury to clinch the win.
Fiorentina are second in their group, three points behind Basel, who beat Lech Poznan 2-0 in Switzerland.
Fiorentina were not the only Italian winners, with Lazio coming from behind to beat nine-man Saint-Etienne 3-2 in Group G and Napoli winning 2-0 at Legia Warsaw in Group D.
After holding Ajax to a 2-2 draw in Amsterdam in their opening dame in Grop A, Celtic draw by the same scoreline at home to Fenerbahce in Glasgow.
However, it was a disappointing outcome after the Scottish champions went two goal up inside 32 minutes through Leigh Griffiths and Kris Commons.
A shocking Efe Ambrose header allowed Fernandao in to pull one back for Fernarbahce and the Brazilian, the leading scorer in Turkey last season with Bursaspor, levelled just after the break.
“We created two very nice goals and had good control over them, and of course we made a stupid mistake. Then we started the second half poorly and they make it 2-2 from a set-play,” Celtic manager Ronny Deila told BT Sport.
Celtic’s next game is in Norway against Molde, 1-1 with Ajax. AFP