Ukrainians cast their votes on Sunday in a presidential election that could shape the country's future for decades to come, with a comedian who has no political experience the favorite to take the helm of a country ravaged by military conflict and an ailing economy.
Former Prime Minister Yulia Tymoshenko ran against Poroshenko and finished a distant second.
Let our news meet your inbox. The news and stories that matters, delivered weekday mornings.
This time around Tymoshenko, 58, has played heavily to the economic distress of millions of Ukrainians, promising to enact legislation that will reduce prices of household gas by 50 percent immediately after taking office. She is also keen to keep the country on the pro-European path it embarked on after the 2014 revolution.
Poroshenko, a 53-year-old confectionery tycoon whose popularity has sunk amid Ukraine's economic woes and a sharp plunge in living standards, has been accused of turning a blind eye to corruption.
His time in office has also been marred by a defence spending scandal that broke out in the middle of the campaign in February.
Poroshenko has focused his election platform on support for the army and Ukrainian language.
He declared martial law in regions close to the Russian border last November in the wake of an incident in which Russia rammed, shot at and seized three Ukrainian ships, detaining 24 sailors.
In a move that prompted international criticism, Poroshenko has also banned Russian citizens from becoming election observers and said no election ballots will be allowed to be cast by Ukrainians living in Russia.
Zelenskiy, a successful actor and producer, has led an unconventional campaign aimed at engaging voters on social media.
In a case of art potentially imitating life, he played the Ukrainian president in a popular TV show.
Zelenskiy, 41, didn't hold rallies, instead traveling around the country selling tickets to gigs at which he parodied many of the politicians he is running against.
He has pledged to tackle corruption, stop a brain drain out of the country and make Ukraine “prosperous” again. He has also previously said that if elected he will only serve for one term.
Voters in the historically Russian-speaking southeastern regions of Ukraine could be crucial for Zelenskiy, who is a native Russian speaker.
Zelenskiy has also managed to engage a younger section of the electorate, but whether they actually buck historical trends and turn out to vote remains an open question.
Concern about the election's fairness spiked this week after the interior minister said his department was "slammed" by numerous claims that campaigners for Poroshenko and Tymoshenko were trying to bribe voters.
Many political observers have described the election as a battle between Ihor Kolomoyskyi — the self-exiled billionaire businessman alleged to be backing the comedian front-runner — and Poroshenko, who was himself on Forbes Magazine's list of billionaires in 2014.
Both the president and Kolomoyskyi have relied on an arsenal of media outlets under their control to exchange blows.
Just days before the vote, Kolomoyskyi's TV channel aired a new season of the "Servant of the People" series starring Zelenskiy.
The comedian may soon be playing the president for real.