Raikkonen was 0.197 seconds quicker than Sebastian Vettel, who pipped title rival Hamilton by just 0.001secs.
Vettel leads Hamilton by 14 points with nine races remaining this season.
Ferrari's pace, helped by a significant aerodynamic upgrade to their car this weekend, was a surprise on a track that was expected to favour Mercedes.
And Mercedes' concerns will be heightened by the fact Ferrari were clearly the quickest car in race trim in Friday afternoon practice.
Media playback is not supported on this device
Red Bull's Max Verstappen was fourth - but a massive 1.118secs off the pace - while Hamilton's team-mate Valtteri Bottas was down in fifth after making two errors before aborting his qualifying simulation lap.
Red Bull's Daniel Ricciardo was sixth, ahead of an impressive performance from Jolyon Palmer in the Renault in seventh.
Palmer had a disappointing first half of the season, afflicted by reliability problems and struggling for pace.
But he has been edging closer to team-mate Nico Hulkenberg in recent races and on Saturday morning was four places ahead of him having looked strong on Friday as well.
Force India's Sergio Perez was eighth, ahead of Toro Rosso's Carlos Sainz and McLaren's Fernando Alonso.
Williams, the centre of attention this weekend amid rumours linking them to Alonso for 2018, are having a difficult time, with Lance Stroll and Felipe Massa in 15th and 16th places, 2.7secs off the pace.
Williams have sounded out Alonso as they assess what options they have as they consider a team-mate for Stroll in 2018.
At the back, Sauber are horribly off the pace, 1.6secs slower than the next slowest car that set a representative lap time, struggling with the 2016 Ferrari engine and a lack of downforce.
Belgian Grand Prix final practice results
Belgian Grand Prix coverage details
Kimi Raikkonen headed a Ferrari one-two in final practice at the Belgian Grand Prix, with Lewis Hamilton's Mercedes down in third.