The visitors needed to win at Vicente Calderon, but instead were turned over by the victorious Rojiblancos on Wednesday
First-half goals from Raul Garcia and Diego Costa condemned Paulo Fonseca's side to third place and a spot in the Europa League, but it could have been a very different story for the visitors after they missed a host of chances in the first half.
The most glaring of their chances was Josue's penalty – saved by Daniel Aranzubia – with Jackson Martinez and Silvestre Varela hitting the frame of the goal three times between them.
Lica then hit a post for an incredible fourth time midway through the second half as Porto were made to rue their finishing.
Atletico, confirmed as group winners before the game, rested key men David Villa and Arda Turan while Fernando was Porto's only change.
The visitors started well, as Martinez stretched to reach Danilo's right-wing cross in the eighth minute, but his poked effort from six yards crashed off the crossbar and away to safety.
Atletico went in front just six minutes later though, with Garcia gathering a throw from the left before turning his man and thumping home an effort from a tight angle which beat Helton at his near post and cannoned in off the bar.
Varela hit the bar with a header from another Danilo delivery in the 21st minute before Atletico goalkeeper Aranzubia, making his Champions League debut in place of the suspended Thibaut Courtois, conceded a penalty.
But after bringing down Martinez inside the area, the keeper dived to his left to save Josue's weak effort and preserve the hosts' advantage.
As the game continued at a frenetic pace, Atletico almost doubled their lead immediately, only for Helton to stick out a leg and deny Costa as he bore down on goal.
Porto hit the woodwork for a third time nine minutes before the break, as Martinez prodded against the post from Varela's cutback, and Atletico made them pay just one minute later.
Costa was the scorer, netting his fourth of the competition after springing the offside trap and rounding Helton, and the goalkeeper was in action again in stoppage time, tipping over to keep out Adrian Lopez's effort.
In a quieter second period, substitute Lica struck the post yet again for the visitors in the 69th minute.
And Porto were left frustrated in the end, especially when Austria Vienna's 4-1 win over Zenit meant a triumph would have seen them progress to the last 16.