Porush has tried to calm fears that Jerusalem is turning into an ultra-Orthodox city.
"I want to assure all the residents of Jerusalem. I am a haredi [ultra-Orthodox Jew], but I don't have horns, and I haven't come to poke anyone. My slogan is that Jerusalem will love Porush, and I will prove this true," Porush told CNN.
He has also publicly apologized for a previous private comment that "in another 10 years, there won't be a single secular mayor anywhere except in some run-down village."
Barkat is leading in the polls and has focused his campaign on the national religious camp. Some secular voters have criticized him for being too right-wing, but Barkat rejects those labels.
"The thinking must not be sectorial in Jerusalem, the thinking must be of the whole and thinking of others and being fair and honest with each other -- that is the solution for Jerusalem," Barkat told CNN.
Polling booths in the ultra-Orthodox neighborhoods were packed by midday. Many voters had been driven there by the Porush team in buses, taxis and even ambulances.
Officials with walkie-talkies controlled the proceedings with military precision.
Large crowds also waited to vote in the more secular areas of Jerusalem, with election leaflets littering the ground.
Both leading candidates favor keeping Israeli control of the whole of Jerusalem and continuing to build Jewish settlements in Arab East Jerusalem, which Palestinians want as the capital of a future state.
The main concern for the winner of the election will be the economic decline of Jerusalem. It is the poorest of Israel's three largest cities, with about a third of its 730,000 residents living below the poverty line, according to government figures.
The polls will close at 10 p.m. (3 p.m. ET). A second round of voting will be necessary if no one wins at least 40 percent of the vote.