The national federation imposed a five-year ban but suspended two years of the punishment. Shahadat, who admitted a charge of "physical assault", was also fined 300,000 taka ($3,540), the board said.
The 33-year-old bowler condemned the ban as "too harsh" and said it would effectively end his controversial cricket career.
Shahadat attacked young bowler Arafat Sunny Jr during a game between Dhaka and Khulna after an argument over how to shine the ball, a board official said.
"Considering his past behaviour we decided to punish him for five years. The last two years of his ban will remain suspended," said BCB technical committee chief Minhajul Abedin.
Shahadat, who played 38 Tests and 51 one-day internationals for Bangladesh, spent nearly two months in detention in 2015 after he and his wife were accused of torturing an 11-year-old girl they employed as a maid.
The couple originally went into hiding after police raided their house in September 2015 when the girl alleged they had beaten and tortured her.
Police said that one of the girl's hands had been burnt with a hot cooking implement. Shahadat and his wife were cleared however when the case came to trial.
The bowler told AFP the showdown with his teammate "happened in the heat of the moment" and denied that he slapped or kicked Arafat. "I only pushed him, I did not hurt him. But I agree it's a mistake. As a Test player I should not have done this. I will appeal," Shahadat said. "A five-year ban is too harsh for me. I would have accepted a six-month ban or some fine."
"My mother is a cancer patient. She stopped eating after the news. If I am banned for five years it will take away my livelihood," he said.