The incumbents
Basuki Tjahaja Purnama and Djarot Saiful Hidayat
Basuki, 50, inherited the post of Jakarta governor in 2014, after Mr Joko Widodo was elected president.
Mr Djarot, 54, his running mate, was a backbencher for the ruling Indonesian Democratic Party of Struggle (PDI-P) before he was appointed deputy governor. They are contesting under the PDI-P ticket, although Basuki had initially planned to run as an independent.
The challengers
Agus Harimurti Yudhoyono and Sylviana Murni
Mr Agus, 38, was an army major before he announced on nomination day that he would run for governor.
The son of former president Susilo Bambang Yudhoyono soon found that his political pedigree was both a boon and bane.
Many questioned his youth and inexperience, but those were gaps Ms Sylviana, a 58-year-old City Hall veteran, was picked to plug by Dr Yudhoyono's Democratic Party.
The challengers
Anies Baswedan and Sandiaga Uno
Mr Sandiaga, a 47-year-old business tycoon, was the first to throw his hat into the ring to challenge Basuki.
But, in an unexpected twist, Gerindra Party patron Prabowo Subianto decided that former education minister Anies, also 47, would run as governor, with Mr Sandiaga as his No. 2 instead.
It came as a surprise because Mr Anies, while campaigning for Mr Joko's presidential bid against Mr Prabowo in 2014, had been strongly critical of the former army general, once even saying that he was endorsed by the local "Mafioso".
Francis Chan