BJP nominee Shivnarayan Singh defeated Congress' candidate Savitri Singh from the seat in Umaria district by 25,476 votes, an election official said.
The bypoll was necessitated as BJP MLA Gyan Singh got elected to the Lok Sabha in November last year from Shahdol in a by-election.
Meanwhile, BJP was trailing in the Ater assembly constituency where Congress's Hemant Katare has extended lead over BJP's Arvind Bhadoria by 4565 votes.
Earlier postal votes were counted.
In Ater, the by-election is necessitated following the death of Congress leader Satyadev Katare.
The by-elections for the two seats were held on April 9.
There were 21 candidates in the fray in Ater, while five contested from Bandhavgarh.
Around 60 percent voter turnout was reported in Ater during the polling on Sunday while the voting percentage was 65 for Bandhavgarh.
With PTI inputs