After the results were announced, Mr Sonowal tweeted:
The by-poll was made necessary after BJP incumbent Pradan Baruah, resigned to contest from the Lakhimpur Lok Sabha seat. Altogether, five candidates were in the fray and the other three candidates are CPI(M)'s Jadu Hazarika, SUCI(C)'s Hem Kanta Miri and Independent Rajkumar Doley.
For the Congress, the only solace was that they lost by a narrow margin, compared to the 2016 assembly elections.
Last year, the BJP had exhibited a steller performance in the state's assembly elections under the leadership of Sarbananda Sonowal, who was then a Union Minister, and its latest acquisition from Congress, Himanta Biswa Sarma. The party had won 60 of the 126 Assembly seats and formed the government in partnership with its pre-poll alliance partners last year.
The BJP has emerged as the big winner in the latest round of by-elections across eight states. It has won four seats and is leading in two of 10 seats that went to polls.
Besides Assam, the party has won the Bhoranj seat in Himachal Pradesh and has wrested Rajouri Garden seat from Delhi's ruling Aam Aadmi Party. It is also leading in the two seats of Madhya Pradesh. In Rajasthan, it has won the Dholpur seat from Mayawati's BSP.
The Congress, which is ruling Karnataka, has won Nanjangud and leading in Gundlupet - the two seats it held.