West Brom suffered defeat on their return to the Championship as Yanic Wildschut grabbed a late winner for Bolton.
Wanderers nearly slipped back into League One last season and this summer has seen more attention on their finances but they were able to celebrate a 2-1 victory at The Hawthorns.
Josh Magennis’ opener was cancelled out on the stroke of half-time by Harvey Barnes, and Magennis looked like he might have missed Bolton’s chance to win it.
But Wildschut, making his debut after signing on loan from Norwich, scored the winner in the 89th minute, and Bolton survived a late onslaught from West Brom, which included Ahmed Hegazi heading against the bar.
There were mixed fortunes for Championship new boys Wigan, Blackburn and Rotherham.
Wigan were promoted back to the second tier as League One champions and made a winning start with a 3-2 victory over Sheffield Wednesday.
Michael Jacobs scored twice in the first half for Paul Cook's men, with Atdhe Nuhiu, who was later sent off, briefly equalising for the visitors. Jacobs then created a third for Nick Powell on the hour mark and, although Fernando Forestieri pulled one back, Wednesday could not find an equaliser.
Blackburn pushed Wigan all the way in League One but they had to settle for a point at Portman Road after debutant Tayo Edun’s late equaliser in a 2-2 draw.
Winger Gwion Edwards scored five minutes into his Ipswich debut but goals from Danny Graham and Bradley Dack put Rovers ahead inside half an hour.
Rotherham also bounced back at the first time of asking but, after their struggles of 2016-17, when they managed just 23 points, they endured a sobering first match against Brentford, which ended in a 5-1 loss.
Neal Maupay opened the scoring in just the fourth minute and added a second after goals for Sergi Canos and Ollie Watkins. Lewis Macleod made it five late on, and Will Vaulks' effort was no consolation for Rotherham.
There was late drama at St Andrew’s, where Birmingham drew 2-2 with Norwich.
Jacques Maghoma put the Blues ahead in the 56th minute, which was cancelled out by Onel Hernandez seven minutes from time. Viv Solomon-Otabor looked to have won it for Birmingham only for Hernandez to grab a stoppage-time equaliser.
Middlesbrough staged a late fightback to claim a 2-2 draw with Millwall, who dominated much of the match and led through goals from Aiden O'Brien and Lee Gregory. But Martin Braithwaite pulled one back in the 87th minute and there was still time for George Friend to level up.
Alan Browne's 50th-minute effort earned Preston a 1-0 win over QPR while Andreas Weimann and Daryl Murphy were on target in Bristol City's 1-1 draw with Nottingham Forest.