With Spain still grappling with a third wave of coronavirus infections, the vote in the wealthy northeastern region was held under tight restrictions to reduce the risk of contagion.
With 99 percent of the votes counted, Prime Minister Pedro Sanchez's Socialists won the most votes but the three separatist parties together were set to get 74 seats in the 135-seat assembly.
That is up from 70 seats won in the last election in December 2017, just months after Catalonia's failed secession bid which led to the jailing of several separatist leaders.
To reduce the risk of virus transmission in the region, polling stations were set up in spacious venues like food markets, the area around FC Barcelona's football stadium and the bullring in Tarragona.
Voters had to wear face masks, use disinfectant gel provided at polling stations and stand apart while lining up in rainy weather to cast their ballots.
During the last hour of voting, which was reserved for people infected with Covid-19, polling station workers wore gloves, facial screens and white protective gowns.
The Socialists had 33 seats, up from 17 in the last vote when they finished fourth.
Sanchez had hoped the election — Catalonia's fifth in a decade — would end separatist rule in the region which accounts for a fifth of Spain's economy.
He fielded his health minister Salvador Illa as his candidate in the hope that his high profile in the fight against the pandemic would help win votes.
While separatist parties have been deeply divided over strategy since the failed secession bid, they were not punished by voters and for the first time won over 50 percent of the vote, against 47.5 percent four years ago.
The more moderate ERC got 33 seats, the hardline JxC got 32 and the radical CUP nine seats.
The result leaves the ERC's main candidate, 38-year-old jurist Pere Aragones, best placed to become Catalonia's next leader.
“We have stopped an operation by the (Spanish) state to expel separatists from institutions,” he said after the results were announced.
Illa had argued it was “time to turn the page” after over a decade of Catalan nationalists governments focusing on separatism but Aragones dismissed his approach during the campaign as “amnesia”.
He has said his party would not turn the page while independence leaders remained in jail over the failed secession bid.
Catalonia is currently governed by a coalition led by JxC, which is prone to confrontation with Madrid, and the ERC, which is open to dialogue and has helped Sanchez's minority government pass laws at the national level.
'We are afraid'
The anti-coronavirus measures appeared to discourage people from voting.
While some 5.5 million people were eligible to vote, turnout was a record low at 54.4 percent, down from almost 80 percent in the last election.
“I hesitated until the last minute whether to come vote or not,” Cristina Caballero, a 34-year-old child educator, told AFP at a Barcelona polling station.
“I think these elections should have been postponed.”
The regional government tried to put off the election until the end of May because of the pandemic but the courts blocked that move.
While more than 40 percent of the 82,000 people assigned to help staff polling stations on the day had asked to be recused, all polling stations were operating normally as of noon, according to the Catalan government.
Still, some people picked for polling station duty expressed concern.
“Of course we are afraid, I just had cancer and am still on sick leave, but I was called up,” Eva Vizcaino, a 54-year-old office worker, told AFP at a Barcelona polling station.
“The last hour is especially frightening, when people with Covid come.”