It took just five minutes for Lyon to break the deadlock, with Maxime Gonalons notching an early goal after a strong start.
After 12 minutes Bafetimbi Gomis had a strike well-blocked and Lisandro Lopez put a good chance over four minutes later.
After 25 minutes Lyon's heavy pressure paid off and they were 2-0 up through Alexandre Lacazette, who was set up by Gomis.
Two minutes later Bastia had a goal back from a Wahbi Khazri strike and it was about to get worse for the home side.
Dejan Lovren fouled Khazri inside the box to give away a penalty and he was shown a straight red card. With Lyon down to 10 men the scores were level as Jerome Rothen fired in from the spot.
Gomis and Yoann Gourcuff both shot wide as Lyon tried to get back ahead but the sides went in level at the break.
In the second half it was Bastia's turn to concede a penalty and a red card as Fethi Harek was shown his second yellow. Lopez smashed in the spot-kick to restore Lyon's lead.