Pakatan Rakyat retained the Bukit Gantang parliamentary seat in Perak and the Bukit Selambau state seat in Kedah in by-elections held simultaneously yesterday.
The Barisan Nasional retained the Batang Ai state seat in Sarawak.
Ousted Menteri Besar Mohammad Nizar Jamaluddin captured Bukit Gantang, defeating BN candidate Ismail Saffian and independent Kamarul Rami-zu Idris.
Nizar won 21,860 votes against Ismail's 19,071 while Kamarul got only 62 votes, losing his deposit.
PKR's majority increased this time. More people cast their votes too.
Nizar's majority is 2,789-vote over Ismail. The late Roslan Shahrom defeated BN's Azim Zabidi with a 1,566 vote-majority in last year's general election.
The Election Commission said 75.1 per cent or 41,626 of the 55,562 voters cast their ballots.
In last year's election, voter turnout was 72.6 per cent.
Parti Keadilan Rakyat won Bukit Selambau with a slightly increased majority of 2,403 votes.
All the 13 independent candidates lost their deposits as they failed to poll one-eighth of the ballots cast. Collectively they polled just 1,326 votes.
The Bukit Selambau by-election was called after incumbent and Kedah state executive councillor V. Arumugam resigned over morality issues.
In last year's general election, Arumugam, who contested as an independent, won the seat with a majority of 2,362 votes, against S. Krishnan of the BN.
BN candidate Malcom Mussen Lamoh polled 3,907 votes beating PKR's Jawah Gerang who managed 2,053, delivering the ruling coalition a 1,854-vote majority in Batang Ai.
In the 2006 state elections, the late Datuk Dublin Unting of BN retained the seat with a 806-vote majority.