The Congress's Sunil Jakhar has won the Gurdaspur bypoll by close to two lakh votes.
The BJP came in second, and the AAP third.
Counting began this morning. The bypoll -- necessitated by the death of the BJP's Vinod Khanna -- took place on October 11.
The Gurdaspur bypoll is being seen as a referendum on Punjab's six-month-old Congress government.
Jakhar himself had billed the bypoll as a referendum on the NarendraModi-led government at the Centre and its policies.
"People of Gurdaspur have sent a strong message of their resentment to policies pursued by Modiji-led Centre," ANI reported Jakhar as saying.
"This is a beautiful Diwali gift, packed with a red ribbon, for our would-be party president Rahul Gandhi," ANI reported Navjot Sidhu, who recently joined the Congress from the BJP, as saying.