Match ends, Bristol City 0, Coventry City 0.
Bristol City secured the League One title with two games left, despite being held at home by Coventry City.
The Robins beat Bradford 6-0 to win promotion on Tuesday, but Coventry edged the first half at Ashton Gate, with Frank Fielding denying John Fleck.
At the other end, Kieran Agard had a penalty appeal turned down after Reda Johnson's challenge.
Luke Freeman wasted Bristol City's best chance after the break, but a draw was enough to confirm them as champions.
In sealing the League One title, the Robins became just the second team to win both the third-tier championship and Football League Trophy in the same season, following Birmingham City's success 20 years ago.
The Robins failed to replicate the impressive attacking display they produced at Valley Parade, with Frank Nouble and Grant Ward both going close to putting Coventry ahead.
In the second half, goalkeeper Fielding produced a brilliant save to keep Nick Proschwitz's chip out as the Sky Blues, who are now five points clear of the relegation zone in 16th, pressed for a winner.
But, with second-placed Preston North End having been held to a draw by Port Vale on Friday, a point was all Bristol City needed to be crowned champions.
Coventry City manager Tony Mowbray told BBC Coventry And Warwickshire:
"It was a great team effort from everybody. We've been pretty good away from home over the past few weeks so it should be no surprise.
"The lads are a bit disappointed that we didn't nick the game, but we're happy with a point away at the best team in the league."
- 24TavernierSubstituted forWagstaffat 89'minutes
- 21PackBooked at 17mins
- 15FreemanSubstituted forElliottat 89'minutes
- 23BryanBooked at 25mins
- 2WillisBooked at 63minsSubstituted forPhillipsat 66'minutes
- 22PenningtonBooked at 78mins
- 11O'BrienBooked at 80minsSubstituted forMaddisonat 82'minutes
- 19NoubleBooked at 15minsSubstituted forOdelusiat 86'minutes
- David Coote
- Shots on Target
Second Half ends, Bristol City 0, Coventry City 0.
Foul by Grant Ward (Coventry City).
Aaron Wilbraham (Bristol City) wins a free kick in the defensive half.
Attempt missed. Nick Proschwitz (Coventry City) right footed shot from the left side of the box misses to the right.
James Maddison (Coventry City) wins a free kick in the defensive half.
Foul by Kieran Agard (Bristol City).
Substitution, Bristol City. Wade Elliott replaces Luke Freeman.
Substitution, Bristol City. Scott Wagstaff replaces James Tavernier.
Corner, Bristol City. Conceded by Reda Johnson.
Foul by John Fleck (Coventry City).
Marlon Pack (Bristol City) wins a free kick in the attacking half.
Attempt saved. Sanmi Odelusi (Coventry City) left footed shot from the left side of the box is saved in the bottom left corner.
Substitution, Coventry City. Sanmi Odelusi replaces Frank Nouble.
Attempt saved. Nick Proschwitz (Coventry City) right footed shot from long range on the right is saved in the centre of the goal.
Substitution, Coventry City. James Maddison replaces Jim O'Brien.
Attempt missed. Luke Freeman (Bristol City) right footed shot from the centre of the box is close, but misses to the left.
Jim O'Brien (Coventry City) is shown the yellow card.
Corner, Coventry City. Conceded by Joe Bryan.
Jim O'Brien (Coventry City) wins a free kick in the defensive half.