Match ends, FC Porto 4, FC Basel 0.
Porto reached the Champions League last eight for the first time since 2009 with a comprehensive win over Basel.
The Portuguese side were without top scorer Jackson Martinez, but they struck four fine goals as Yacine Brahimi curled in a 20-yard free-kick.
Hector Herrera doubled the lead before Casemiro thundered in a free-kick.
Vincent Aboubakar then added a fourth late on before Walter Samuel saw red as Porto extended their unbeaten run in this competition to 10 games.
The 2004 Champions League winners were rarely troubled by the Swiss side, who qualified from their group at Liverpool's expense.
And although many big European teams will see Porto as a good team to draw in the quarter-finals, they have gained a great deal of momentum under Spanish coach Julen Lopetegui.
Basel, who were hoping to reach the last eight for the first time since 1974, never looked like doing so on a miserable night for their Portuguese coach Paulo Sousa.
Porto established control early on through Brahimi's finish, after veteran Argentine defender Samuel brought down Cristian Tello.
And their biggest concern in the first half was when goalkeeper Fabiano sprinted from his line to intercept a through ball and accidently smashed his shoulder into the face of his own stand-in captain Danilo.
At one point it looked very serious for the Brazilian defender, who was quickly surrounded by medics, but he appeared to be conscious as he was carried off the field on a stretcher and the club later tweeted to say there was no serious injury.
Porto did not appear to be missing their regular skipper Martinez, who was out with a groin injury. His replacement, Cameroonian Aboubakar, deputised ably and almost made it 2-0 with a swerving shot from 25 yards.
Basel seldom threatened the Porto goal, with Marco Streller curling over the top when well-placed and Shkelzen Gashi hitting a shot wide of the post despite having more time to compose himself.
Former QPR, Swansea and Leicester manager Sousa then watched his side go further behind when the Basel defence backed off, allowing Herrera to beat Tomas Vaclik.
By that stage, the game seemed over, and yet there was still time for Brazilian midfielder Casemiro, on loan from Real Madrid, to crash in his free-kick from 30 yards.
Aboubakar, 23, wrapped up an almost-perfect Porto display with another superb strike and Basel suffered a final embarrassment when Samuel received a second yellow card for a foul on the striker.
Porto boss Julen Lopetegui: "Danilo's situation was dramatic but he recovered consciousness on his way to hospital and appears to be OK. This victory is also for him.
"You have to applaud the entire team for this fantastic performance against a very difficult opponent who came here determined to qualify. We deserve to be in the Champions League quarter-finals even if we came through qualifying. I am very happy and very proud of my players who showed a lot of character."
Basel head coach Paulo Sousa: "I am disappointed with the result but proud of our campaign in the Champions League. We were not at our best, they were better at both ends.
"Porto have a lot of quality. We couldn't be at our best in either match, we were not the same as in October, November and December - if we had been, this result would not have happened."
- 12Ribeiro de Freitas
- 2DaniloSubstituted forMartins Indiat 22'minutes
- 4Pereira Roque
- 5Marcano SierraBooked at 55mins
- 26Lobo Silva
- 15EvandroSubstituted forRicardo Quaresmaat 79'minutes
- 8BrahimiSubstituted forNevesat 74'minutes
- 1da Silva Arruda
- 3Martins Indi
- 7Ricardo Quaresma
- 30Torres Muñoz
- 16SchärSubstituted forEmboloat 57'minutes
- 6SamuelBooked at 90mins
- 19SafariBooked at 55mins
- 20FreiSubstituted forKakitaniat 63'minutes
- 25GonzálezBooked at 38mins
- 11GashiBooked at 30minsSubstituted forCallàat 77'minutes
- Jonas Eriksson
- Shots on Target
Second Half ends, FC Porto 4, FC Basel 0.
Second yellow card to Walter Samuel (FC Basel) for a bad foul.
Vincent Aboubakar (FC Porto) wins a free kick on the right wing.
Foul by Walter Samuel (FC Basel).
Hand ball by Héctor Herrera (FC Porto).
Attempt missed. Marco Streller (FC Basel) left footed shot from outside the box is high and wide to the left. Assisted by Yoichiro Kakitani.
Attempt saved. Mohamed Elneny (FC Basel) right footed shot from outside the box is saved in the top centre of the goal. Assisted by Luca Zuffi.
Ricardo Quaresma (FC Porto) wins a free kick in the defensive half.
Foul by Breel Embolo (FC Basel).
Foul by Casemiro (FC Porto).
Breel Embolo (FC Basel) wins a free kick in the attacking half.
Foul by Ruben Neves (FC Porto).
Luca Zuffi (FC Basel) wins a free kick on the right wing.
Ricardo Quaresma (FC Porto) wins a free kick on the left wing.
Foul by Behrang Safari (FC Basel).
Corner, FC Basel. Conceded by Fabiano.
Substitution, FC Porto. Ricardo Quaresma replaces Evandro Goebel.
Substitution, FC Basel. Davide Callà replaces Shkelzen Gashi.
Offside, FC Porto. Vincent Aboubakar tries a through ball, but Cristian Tello is caught offside.