The last six hostages held by the hijackers walked out the bus in an Athens suburb followed by police entering the vehicle and arresting the two hijackers.
The drama started about 6:00am (0800 GMT) on Wednesday and ended about 00:45am on Thursday (2245 GMT Wednesday).
The gunmen, identified by police as Albanians, had demanded a $1 million ransom to free the hostages or threatened to blow up the bus.
One of the two men told the private television station Alter late on Wednesday, “I am going to wait until tomorrow at 8.00am (0600 GMT) for the banks to open and at 8.00am I will light the fuse unless I have the money and a driver. I am not going to release anybody else. It is over.”
The six passengers – four women and two men – were the last of the hostages to remain in the bus after the armed men commandeered the bus near Athens.
In a string of concessions, the hijackers had released 16 passengers in stages.
The driver, the ticket collector and one woman passenger had managed to escape when the men stormed the Athens-to-Marathon bus.
Armed with hunting rifles, they wanted to be taken to the international airport. By then police had blocked and surrounded the bus.
A private radio station Alpha said somebody claiming to be one of the hostage-takers had called it via a mobile phone taken from a woman passenger on the bus.
The caller had demanded that police move away from the vehicle so it could be driven to the airport, the radio said. It added one of the two hijackers called himself “Hasan”.
Police cars also blocked traffic along the busy eastern Athens highway leading to Marathon, and kept news crews hundreds of metres away.
This is the first such incident since two deadly bus hijackings shocked the country five years ago.