Ivan Klasnic fired the game's only goal for Croatia as Poland's unlikely bid to reach the last eight ended in failure.
Needing to beat Croatia by at least two goals, and for Germany to lose to Austria, only a string of Artur Boruc saves kept Poland's losing margin down.
Danijel Pranjic, Ivan Rakitic and Klasnic had all been denied before the latter lashed in the winner left-footed from 12 yards early in the second half.
Ebi Smolarek wasted late Poland chances but Group B winners Croatia held firm.
Slaven Bilic's team will be full of confidence ahead of their quarter-final against Turkey on Friday after a side boasting nine changes to the one that beat Germany last time out maintained their 100% record in the 2008 tournament.
And the story of the match was made all the more remarkable by the fact that Klasnic only underwent a kidney transplant last year, having suffered kidney failure in January 2007 - and his emotional celebrations told a story all on their own.
Poland came into the match still feeling aggrieved at English referee Howard Webb's decision to award Austria a penalty in injury time in the previous group match to deny them victory.
But any hopes they had of proving they deserved a place in the last eight fell flat, despite an encouraging opening 10 minutes.
First Wojciech Lobodzinski forced a hurried save from Croatia keeper Vedran Runje with a fine, whipped cross and then Dariusz Dudka headed inches wide of the goal from Jacek Krzynowek's corner.
But with Smolarek, their leading goalscorer in qualifying, left on the bench, Poland lacked any penetration and when Croatia settled into their stride, it was left to Boruc to keep the Poles in the game single-handedly.
Even having made so many changes, Croatia showed glimpses of their class, and Hrvoje Vejic was unlucky not direct his header home on 20 minutes from Ivan Rakitic's cross.
Thereafter, it was the Boruc show, Klasnic twice denied by the big Celtic keeper after dashing through a static Polish back line, and Rakitic and Pranjic both seeing firm drives beaten away in the closing stages of the first half.
Minutes after the restart, news filtered through from Vienna that Michael Ballack had put Germany ahead against Austria, effectively ending Poland hopes of qualification.
And, almost as if the news had finally broken their resistance, Poland found themselves behind just seconds later, Klasnic latching on to Pranjic's cut-back and lashing into the far corner left-footed.
Poland raced up the other end, Rafal Murawski sending a drive wide of the upright from 20 yards, but in truth their challenge was done and dusted.
To their credit, Leo Beenhakker's side plugged away and, after Smolarek had been introduced, Roger Guerreiro nearly levelled when he turned in the box and drilled wide.
Southampton striker Marek Saganowski also forced a save from Runje with a firm header, but Croatia always looked relatively comfortable - their main concern being to get through the game without injury.
With that in mind, match-winner Klasnic was removed from the action 16 minutes from time, allowing the last member of Croatia's squad not to have tasted Euro 2008 action - Nikola Kalinic - a piece of the action.
There was still time for Smolarek to twice drill decent efforts narrowly wide of the target and Thomasz Zahorski to waste Poland's best chance of the night - denied by Runje after sprinting clear of the Croatia defence.
But the Croats played out the last few minutes comfortably to extend their recent record to just two competitive defeats in four years and underline their potential as one of the tournament's dark horses for the title.
Poland: Boruc, Wasilewski, Zewlakow, Dudka, Wawrzyniak, Lobodzinski (Smolarek 55), Murawski, Roger, Lewandowski (Kokoszka 46), Krzynowek, Saganowski (Zahorski 69).
Subs Not Used: Kowalewski, Fabianski, Jop, Golanski, Bak, Gargula, Pazdan.
Booked: Lewandowski, Zahorski.
Croatia: Runje, Simic, Vejic, Knezevic (Corluka 26), Pranjic, Leko, Vukojevic, Pokrivac, Rakitic, Klasnic (Kalinic 74), Petric (Kranjcar 75).
Subs Not Used: Pletikosa, Galinovic, Simunic, Robert Kovac, Nico Kovac, Srna, Modric, Olic, Budan.
Booked: Vejic, Vukojevic.
Goals: Klasnic 52.
Ref: Kyros Vassaras (Greece).