Jakhar polled 4,99,752 votes while Salaria polled 3,06,533, poll official said.
Aam Aadmi Party nominee Major General (Retd) Suresh Khajuria was at the third sport with 23,579 votes.
The seat had fallen vacant after the death of BJP MP Vinod Khanna in April this year.
The Congress won this seat after the 2009 Lok Sabha poll when Congress candidate Partap Singh Bajwa had won this seat by defeating BJP candidate Vinod Khanna.
Khanna was four-time MP from Gurdaspur Lok Sabha seat. The actor had won this seat in 1998, 1999, 2004 and 2014.
Also Read
"This is a victory for the Congress and Capt Amarinder Singh," he said.
Congratulating Jakhar, the Punjab chief minister said it is a victory for the development agenda.
"Congratulations to @sunilkjakhar ji for his impressive win in #Gurdaspur bypoll, it's a victory for @INCPunjab policies & development agenda," Amarinder tweeted.
After the trends suggesting massive lead for Congress, party workers assembled at the party office in Chandigarh and started distributing sweets and danced.
"This (victory) is a big slap on the face of 'jija -saala' (SAD chief Sukhbir Badal and Bikram Singh Majithia). Today BJP will realise that Akali Dal in Punjab has become a burden. Time and again people have reprimanded them. It will be demoralising and send them (SAD-BJP) packing," said Sidhu.
Both the BJP and the AAP accused the Congress of misusing official machinery to win the bypoll.
AAP candidate Maj. Gen. (Retd) Suresh Khajuria also accused the Congress of using "undemocratic means" in the bypoll.
"Ruling party used undemocratic means in these elections. People were scared and youth was almost absent in the bypoll. If they (Congress) win then that victory will not be a respectable one," Khajuria alleged.
Disclaimer: No Business Standard Journalist was involved in creation of this content