Ali Coote wrote his name into Bohemians folklore with two goals as the Gypsies pulled off one of the all-time League of Ireland shock results in Europe.
The Scottish winger netted in either half as Keith Long's side set up a massive second leg in Thessaloniki next week as they out-thought and outperformed a star-studded PAOK side.
Bohs had never played in the redeveloped Lansdowne Road before the first round tie with Stjarnan, but they've made the national stadium a fortress with three wins in three since.
This was by far the most notable of the three purely due to the disparity in resources as the band of internationals from the Aegean Sea banged on the walls without ever rattling their semi-professional opponents.
All eyes ahead of kick off we're on the visitors and their brand new summer signing, Shinji Kagawa, the Bundesliga and Premier League winner with Dortmund and Manchester United.
That the Japanese was pulled, along with two others, on the hour mark was testament to the extent to which Bohs refused to show undue respect to their vaunted opponents and squeezed them from the first whistle.
The home side rode their luck at times, particularly in the early minutes as the five-day turnaround from Thursday's 3-0 win over Dudelange looked to have taken their toll in the legs.
The Aviva Stadium has erupted, @bfcdublin lead PAOK!— SSE Airtricity League (@SSEAirtricityLg) August 3, 2021
Georgie Kelly turned provider for Ali Coote, who swept the ball home from close range - what a start for Keith Long's side!
23' @bfcdublin 1-0 PAOK
Sign up ?? | https://t.co/sVFqVgEguX#LOITV | #LOI pic.twitter.com/7tVEHrPaGf
They were blessed not to go 1-0 down inside a couple of minutes as Oliveira's shot was spilled by James Talbot and Andrija Zivkovic somehow put the rebound over with the goal gaping.
PAOK were typically tidy in possession but posed little threat in the early stages and Bohs slowly took confidence as they put some slick passages of their own together.
It was a more direct approach that led to the opener midway through the first half, however, as Georgie Kelly outmuscled Giannis Michailidis and bore down on goal.
He pulled the ball back for Coote, who had run inside from the right wing, and the wideman slid in to poke the ball past Alexandros Pascalaskis in the PAOK goal.
It had taken a fine piece of covering defence to deny Oliveira the opener moments earlier by Ciaran Kelly, who was outstanding alongside Andy Lyons and captain Keith Buckley.
More good work from Coote presented Dawson Devoy with a chance late in the half, but he pulled his shot wide, while Kagawa missed a great chance from close range as the whistle approached.
Seven minutes into the second half, Bohs doubled their lead as a sustained spell of pressure ended with a corner routine played to Coote.
There didn't seem a huge amount of danger as he wound up to shoot from 25 yards, but Paschalaskis made a hash of his well-struck shot and fumbled it into the net.
From there, it seemed likely that only one team would add to the score, though the introduction of the rangey Diego Biseswar did belatedly offer PAOK and player to find space in between the lines.
Unbelievable! Ali Coote has scored again for @bfcdublin against PAOK ??— SSE Airtricity League (@SSEAirtricityLg) August 3, 2021
The Scottish winger let fly from long range and his stinging drive was just too hot to handle!
52' @bfcdublin 2-0 PAOK
Sign up ?? | https://t.co/sVFqVgEguX#LOITV | #LOI pic.twitter.com/OyomxtCQxN
He curled a shot wastefully wide before PAOK struck against the run of play, Oliveira ghosting into the box and glancing a header into the bottom corner 13 minutes from time.
That was the first goal Bohs had conceded in three games at the Aviva and, though there would be some nervy moments, the fortress held as Bohs take a slender advantage to Greece.
Bohemians: James Talbot; Andy Lyons, Rob Cornwall (James Finnerty 82), Ciaran Kelly, Anto Breslin; Keith Buckley, Dawson Devoy (Conor Levingston 76), Ross Tierney; Ali Coote (Keith Ward 88), Liam Burt (Tyreke Wilson 88), Georgie Kelly.
PAOK: Alexandros Paschalaskis; Rodrigo Soares, Giannis Michailidis, Fernando Varela, Vierinha; Stefan Schwab, Anderson Esiti (Jasmin Kurtic 63), Shinji Kagawa (Diego Biseswar 63); Andrija Zivkovic (Thomas Murg 69), Omar El Kaddouri (Christos Tzolis 63) Nelson Oliveira (Karol Swiderski 82).