Zimbabwe's election commission said on the X platform, formerly Twitter, that polling stations had opened at 7:00 am local time, without giving details.
Nine by-elections were due to be held but most opposition candidates were taken off electoral lists by courts in a chaotic run-up to voting.
Residents said no voting was held in a Harare district where one of the by-elections was scheduled because the ruling ZANU-PF's candidate had won unopposed.
A nationwide election in August saw President Emmerson Mnangagwa seal a new term and his ZANU-PF secure 177 of the 280 national assembly seats with the opposition Citizens Coalition for Change, CCC, taking 104.
But two months later, 14 CCC lawmakers were kicked out of parliament and nine by-elections ordered. The other five seats are decided by proportional representation.
An obscure political figure, Sengezo Tshabangu, declared himself the CCC's "interim secretary general" and that the 14 were no longer party members and could not keep their seats.
CCC leader Nelson Chamisa protested that Tshabangu was not a party member and that no expulsions had been agreed.
But the parliament speaker from ZANU-PF still ordered new elections.
Courts have ruled this week — confirmed by the Harare High Court on Saturday — that the opposition candidates could not stand again in their old seats.
The CCC has accused ZANU-PF of using Tshabangu in a "nefarious" campaign to remove opposition candidates from ballot papers.
It has also accused the ruling party of involvement in deadly attacks on its activists.
The ruling party, which has most to gain from picking up more seats, has denied any role in Tshabangu's activities.
However ZANU-PF is just 10 seats away from securing a two-thirds majority in parliament that would allow it to change the constitution.
Observers say the party wants to scrap a limit on presidents serving more than two terms that would allow 81-year-old Mnangagwa to extend his rule.
Forum