The Bharatiya Janata Party (BJP) on Sunday won two Lok Sabha and three state assembly seats in by-elections held in five states and the union territory of Delhi, as the Aam Aadmi Party (AAP) suffered a setback in Punjab as as it lost in the stronghold of Sangrur where Punjab Chief Minister Bhagwant Mann had won twice.