Match ends, Bristol City 3, Barnsley 1.
Bristol City's record £5.3m signing Famara Diedhiou scored a debut goal as they began the Championship season with a confident home win over Barnsley.
The Senegal striker, who joined from French club Angers, headed in the hosts' second in between two Bobby Reid goals in a rampant first-half display.
In a much quieter second half, Adam Hammill shot over for the visitors, who were second best throughout the match.
But Ryan Hedges' scrappy effort gave the Tykes a consolation goal late on.
The result saw the Tykes - who were without injured summer signings Lloyd Isgrove, Liam Lindsay and Zeki Fryers - lose their first game of the season for the fifth year in a row.
Bristol City finished three points above the relegation places last term in 17th - four points below Barnsley - but were sharper and more energetic in the first half.
Both sides had hit the bar when the game was goalless, before an inspired Reid got his first on the rebound after Diedhiou's parried effort, and the pair combined again for the second, with Reid poking in the third.
Victory for Robins head coach Lee Johnson came against his old side, whom he left to take charge at Ashton Gate in February 2016.
Bristol City boss Lee Johnson:
"The lads love and Bobby (Reid) and Fam (Famara Diedhiou), you can see they have struck a good relationship off the pitch as well as on it because they are two good people.
"They were both excellent and their work rate and energy made it easier for the midfield and the defenders.
"Fam is actually very selfless, but he definitely wants to score goals. The leap for his header and leap was unbelievable, it's a great start for him."
Barnsley boss Paul Heckingbottom:
"In that first 10 minutes, we both hit the bar and there was nothing in it. But the first goal changed the nature of the game.
"When we look back over that spell, every chance they created there was something fundamentally wrong.
"Our problem is that even with 11 new players we are still way short of where we want to be."
- 31HegelerSubstituted forFlintat 82'minutes
- 21PackBooked at 66mins
- 20PatersonSubstituted forO'Dowdaat 73'minutes
- 14ReidSubstituted forEngvallat 81'minutes
- 2McCarthyBooked at 77mins
- 20PottsSubstituted forHedgesat 63'minutes
- 19UgboSubstituted forPayneat 79'minutes
- 9BradshawSubstituted forHammillat 45'minutesBooked at 90mins
- Andy Davies
- Shots on Target
Second Half ends, Bristol City 3, Barnsley 1.
Foul by Josh Brownhill (Bristol City).
Andy Yiadom (Barnsley) wins a free kick in the defensive half.
Goal! Bristol City 3, Barnsley 1. Ryan Hedges (Barnsley) left footed shot from the centre of the box to the centre of the goal.
Attempt blocked. Stefan Payne (Barnsley) left footed shot from the centre of the box is blocked. Assisted by George Moncur.
Attempt saved. Adam Hammill (Barnsley) right footed shot from more than 35 yards is saved in the centre of the goal. Assisted by Alex Mowatt.
Attempt missed. Josh Brownhill (Bristol City) right footed shot from outside the box is just a bit too high. Assisted by Callum O'Dowda.
Adam Hammill (Barnsley) is shown the yellow card.
Attempt blocked. Callum O'Dowda (Bristol City) left footed shot from the right side of the box is blocked.
Offside, Bristol City. Marlon Pack tries a through ball, but Gustav Engvall is caught offside.
Bailey Wright (Bristol City) wins a free kick in the defensive half.
Foul by Stefan Payne (Barnsley).
Offside, Barnsley. Alex Mowatt tries a through ball, but Andy Yiadom is caught offside.
Gustav Engvall (Bristol City) wins a free kick in the defensive half.
Foul by Adam Jackson (Barnsley).
Substitution, Bristol City. Aden Flint replaces Jens Hegeler.
Substitution, Bristol City. Gustav Engvall replaces Bobby Reid.
Substitution, Barnsley. Stefan Payne replaces Ike Ugbo.
Attempt missed. Bobby Reid (Bristol City) right footed shot from the centre of the box is high and wide to the right. Assisted by Josh Brownhill.