The internet has been cut off in Uganda on government orders the night before the hotly contested election.
A 38-year-old singer is challenging one of Africa's longest serving leaders in one of the world's youngest countries.
Robert Kyagulanyi, known by his stage name Bobi Wine, says he represents the country's younger generation, while Yoweri Museveni, 76, says he is standing for stability.
Dozens of people have been killed in the run up to the election.
Polls were due to open at 07:00 local time (04:00 GMT) but voting was delayed in several areas.
Some polling stations did not open for close to two hours and voters in the queue had grown angry and had started shouting at the polling gate officials, the BBC's Patience Atuhaire reports from the capital, Kampala.
She said the cause for delay was not clear.
Reuters news agency reports that at the six polling stations their reporters observed delays the ballot paper had not arrived.
Polls are due to close at 16:00 local time (13:00 GMT) but will remain open until everyone in the queue at time of closing has voted, our correspondent adds.
Results are not expected before Saturday.