SG LIMAU Mohd Azam Samat (PAS), 37, has beaten Ahmad Sohaimi Lazaim (Umno), 53, with a majority of 1,084. The seat was won by PAS in May with a 2,774 majority.
The seat is considered a PAS stronghold because it was won by the late Azizan Abdul Razak for five elections in a row.
Azizan eventually rose to become the Kedah menteri besar in 2008 but his party lost grip of the state after the 13th general election.
BN is looking to finally wrest the seat from PAS with their "Dare to Migrate" slogan, with the help of newly-minted Kedah Menteri Besar Mukhriz Mahathir.
About 85.5 percent of the 27,222 voters in the state constitutency turned out to cast their ballots.
LIVE REPORTS
8.50pm: Official results - PAS' Mohd Azam Samat wins.
PAS - 12,069
BN - 10,985
Majority - 1,084
8.10pm: Kedah PAS chief Mahfuz Omar says his prediction that PAS will have a lower majority was spot on, but is glad that it was double his prediction of a 500-vote majority.
He blames the lower-than-expected turnout on the fact that the Election Commission had chosen a Monday to hold the by-election, and estimates that only 2,300 of the 3,600 voters residing outside of the constituency came back to vote.
"This is the problem when EC sets a date on working day. Voters already came back for the general election and Hari Raya, so it is difficult for them to take leave," he said.
PAS election bureau chief Dr Hatta Ramli says PAS has done well despite the lower majority because BN had used "all kinds of aggressive campaign".
"They unloaded money and machinery here. Despite all that, we won. PAS has done extremely well," he said.
8pm: A calm looking Mohd Azam Samat told reporters that he was thankful for the support from voters, but urged everyone to remain calm until the results are announced.
Supporters are making a bee-line to kiss and hug him to boisterous chants of "God is great!".
7.55pm: It's pretty much official that BN has lost. Its Wanita wing head Shahrizat Abdul Jalil is already offering words of consolation for BN supporters.
"We may have lost, but we won something because their majority has been reduced drastically," she told reporters at the BN operation centre.
"I want to call this a victory in defeat... Votes for BN increased and Sungai Limau is considered a 'black area' for BN.
"All the pious people are here. Their women like BN, but because of the bai'ah oath, they are afraid (to vote for us)," she said.
7.45pm: PAS leaders and their candidate Mohd Azam Samat are heading to the Election Commission's tally centre - a clear indication that they expect victory.
7.40pm: The unofficial tally from PAS and BN has indicates that PAS is set to retain the Sungai Limau seat with a reduced majority.
According to BN's tally, PAS raked in 12,068 votes while BN had 10,985. If this figure is accurate, it means that PAS won by a slim majority of 1,083.
7.20pm: For context, PAS won Sungai Limau during the general election in May with a 2,774 majority or 11.4 percent of the total votes cast, down from a 3,212 majority or 12.75 percent of the total votes cast in 2008.
7.10pm: Unofficial results from PAS operation centre in Padang Lumat reveals that the party is maintaining a slim lead.
PAS - 8,276
BN - 7,506
Spoilt - 61
7.05pm:
According to PAS' Sungai Limau election operations director Amiruddin Hamzah, PAS is currently leading by 1,000 votes according to their unofficial count.7.00pm: Unofficial results from PAS operation centre in Padang Lumat reveals that the party has a slim lead.
PAS - 5,250
BN - 5,120
Spoilt - 36
6:57pm:
Unofficial results from Padang Lumat: PAS 363, BN 413, majority BN 506.48pm: Unofficial results from:
Bukit Besar polling station: PAS 1,415, BN 94, majority PAS 472
Dulang Kechil: PAS 39, BN 1,337, majority BN 939