BT must issue refunds to customers for failing to provide clear information before they signed up to services from EE & Plusnet, which the firm owns.
At least 1.1 million people were not given adequate information on the price and length of contracts, as well as fees to end contracts early.
Telecoms watchdog Ofcom has fined BT £2.8m and said - in some cases - the firm "deliberately chose" not to comply with the rules.
BT has apologised and says it will "implement the remedial actions" required by Ofcom.
"We apologise for any inconvenience caused and have taken steps to proactively contact affected customers and arrange for them to receive the information and be refunded where applicable," said a spokesperson.
The punishment relates to consumer protection rules which came into force in 2022.
They state customers should be given "clear and simple" details of a contract before they sign up.
Affected customers who are still with BT have been given the opportunity to walk away from their contract without being charged, or request the information which should have been given to them at the start.
But Ofcom said customers who have already left may have been charged exit fees - and in these cases BT has five months to refund the fees it took from them.
The regulator said that BT knew "from as early as January 2022" that it would not meet the deadline of June 2022 for all of its customers.
"Some sales channels are still non-compliant and BT is still not providing the required information at the right time to some customers," it said.
BT has three months to make these methods of selling products compliant with the rules.
The original fine was reduced by 30% "as a result of BT’s admission of liability and agreement to settle the case," said Ofcom.
BT provides mobile and broadband services to more than 30 million customers in the UK.
It bought PlusNet in 2006 and EE in 2015.