The 19-year-old striker delivered a memorable display in Lisbon as the Portuguese club took a commanding advantage into next week’s return encounter.
He became the youngest player in Europa League history to net a treble, while Ruben Dias also scored for the hosts.
The visitors had defender Enda N’Dicka sent off by English referee Anthony Taylor for a foul after 21 minutes.
Luka Jovic had equalised Felix’s opener, and Frankfurt did not fall completely away, with substitute Goncalo Paciencia’s late goal giving them a glimmer of hope.
Benfica boss Bruno Lage left out top scorer and former Frankfurt striker Haris Seferovic, who had to be content with a place among the substitutes, while captain Andre Almeida was rested and replaced by Sebastien Corchia.
A groin strain sidelined Frankfurt striker Sebastien Haller, but defender N’Dicka and midfielder Sebastian Rode were recalled.
Referee Taylor was soon called into action, booking Jovic, who is on loan from Benfica, for a foul on Rafa Silva after just four minutes.
Frankfurt dominated the early stages, effortlessly keeping possession, but it all unravelled after 21 minutes as N’Dicka conceded a penalty and was red-carded.
He could have no complaints at Taylor’s decision following his challenge on last man Gedson Fernandes, and Felix stepped up to beat Frankfurt goalkeeper Kevin Trapp and put Benfica ahead.
Ante Rebic then followed Jovic by picking up a booking, and Frankfurt knew they had to regroup quickly following the penalty setback and seeing N’Dicka sent off.
But they responded impressively, drawing level five minutes before the break after Benfica’s Ljubomir Fejsa lost possession, Rode found Rebic and his cross was met by Jovic, who swept the ball home.
Frankfurt were level, though, for just four minutes, with Felix claiming his second – this time with a 25-yard shot – to leave Frankfurt trailing once more.
An eventful first half ended after Frankfurt had a goal disallowed. Filip Kostic netted from the edge of the penalty area, but it was ruled out for offside.
Benfica then took control of the tie, scoring twice in four minutes as Dias struck with a close-range header, then Felix completed his hat-trick by side-footing home Alejandro Grimaldo’s cross before Paciencia completed the scoring.