Blackburn Rovers and Bristol City secured Championship safety after an entertaining draw at Ewood Park.
On-loan Sunderland striker Danny Graham gave Rovers the lead with a first-time shot before City substitute Jonathan Kodjia levelled.
Aaron Wilbraham then fired the visitors ahead from eight yards only for Graham to equalise with a header.
City finished with 10 men after Korey Smith was dismissed for an off-the-ball incident.
Blackburn are 18th in the table with 49 points from 44 games – the same number of points as City, who have an inferior goal difference and are 20th.
Both clubs will compete in the Championship next season as 22nd-placed MK Dons joined Charlton and Bolton in being relegated to League One.
Graham has now scored six goals in 16 games since joining Blackburn.
Bristol City manager Lee Johnson:
“We started quite well, first 15 minutes, camped them in and had a couple of chances, and then I thought they really got a foothold in the game and we got a bit stretched.
“At half-time there had to be a hair-dryer or two because it was important we livened them up. They had to dig deep and they did.
“I think as a club it’s a big achievement given the situation we were in. On a personal level, probably my biggest achievement I think, with the help of the group obviously. I’m not saying it’s all me. That’s a shared achievement because the Championship is a tough league. We’ve picked up seven or eight wins and important points. It’s a big day and we’ve got to enjoy it.”
Blackburn Rovers manager Paul Lambert:
“Danny’s two goals were great for us and he’s been excellent for us since he’s been at the football club. It’s very difficult for loan players when they come in and you’re getting towards the tail end of the season. It’s easy for them to switch off, but he has been excellent.
“His work rate, around the place, off the field, all the things you want from an experienced player, he’s been there, seen it, done it, and he’s been a massive player for us.
“I thought in the first half we were excellent. Some of the football was very good and we should have been a couple of goals up. There was the spell in the second half where Bristol got two goals against us and I thought the defending was really poor at that point.
“I think it would have been an injustice had we lost that game.”