Three coaches and the engine of the express train came off the tracks in the district of Gaibandha, trapping dozens of passengers, police and railway spokesmen have said.
The opposition is angry over a decision to hold elections on 5 January.
It has rejected the date and called for a transport blockade.
The opposition wants Prime Minister Sheikh Hasina to transfer power to a neutral caretaker government to oversee polls - the practice adopted in previous votes.
Wednesday is the fifth day of an opposition-sponsored countrywide blockade of rail, roads and waterways. The protests are being led by the main opposition Bangladesh Nationalist Party (BNP) and 17 other opposition parties.
"Among the trapped passengers, three have died, including two men and a woman," Gaibandha police chief Sajid Hossain told the AFP news agency.
He said five passengers who were rescued from one of the derailed carriages are in a serious condition while others had suffered minor injuries.
The private television network Somoy estimated that at least 40 people were hurt.
Bangladesh Railway's northern region head Mahbubul Alam Bakshi accused the protesters of deliberately removing "fishplates" - metal bars that are bolted to the ends of two rails to join them together.
He denounced the derailing as "an act of sabotage".
Police say that two members of the Islamist Jamaat-e-Islami were arrested at the scene. The party is allied to the BNP and is banned from taking part in the election.
There has been no comment so far about the incident from the opposition.
At least three people have been killed in northern Bangladesh when their train was derailed by opposition activists, railway officials have told the BBC.