The visitors arrived in Lisbon sitting 10 points adrift of their hosts and knowing that defeat in the latest edition of O Classico would effectively hand Benfica a first title since 2018-19.
Roger Schmidt's side looked to be on course to take another step towards the trophy when they took the lead through a Diogo Costa own goal after only 10 minutes, but Porto fought back with goals from Mateus Uribe and Mehdi Taremi either side of half time.
Despite the crucial victory, Porto remain seven points adrift of their opponents at the top of the table with only seven games of their season remaining.
It was no surprise to see in-form Benfica striker Goncalo Ramos heavily involved in the opener, with the striker planting a form header against the crossbar and see it rebound off the back of Costa and into the net.
That was as good as it got for the league leaders, though, as they produced an underwhelming performance just days before their Champions League quarter-final first leg against Porto's conquerors Inter Milan.
Schmidt's men also picked up an injury concern ahead of that match with Alexander Bah forced off midway through a first half which Porto turned on its head in the closing stages.
Sergio Conceicao's side levelled things up in the final minute of normal time before half time when Uribe fired a crisp strike into the bottom corner from Pepe's knockdown.
Galeno then netted a second three minutes into first-half stoppage time, although this time Porto's celebrations were cut short when VAR chalked it off for offside.
However, VAR could not save Benfica nine minutes into the second half when Taremi was afforded too much time on the edge of the area before picking out the bottom corner with a bobbling effort.
That proved to be the winning goal as Porto picked up a deserved three points, keeping them just about hanging on in the defence of their title.
Benfica, whose eight-match streak across all competitions comes to an end, will now hope to bounce back in time for Tuesday's Champions League showdown.