Congress retained the Datia assembly seat in Madhya Pradesh, while the BJP held on to Manjalpur in Gujarat, according to bypoll results announced on Tuesday.
In Datia, Congress candidate Singh won with 66,757 votes, defeating BJP's Tiwari, who polled 60,741 votes after all 15 rounds of counting.
The Manjalpur seat in Gujarat was won by BJP's Satish Patel, who defeated Congress nominee Bhikhabhai Rabari by more than 30,000 votes. The bypoll was held after the death of senior BJP MLA Yogesh Patel.
The victory increased the BJP's strength in the Gujarat Assembly to 162 members, while the Congress now holds 12 seats.
Separately, a day before the Datia result, the Congress suspended former MLA Rajendra Bharti. Bharti was disqualified from the Legislative Assembly in April after a court sentenced him to three years' imprisonment in a fraud case.