City played some fine football in flashes but struggled to create decent chances in the final third.
Portu scored the only goal of the game after 14 minutes - and the Spanish side stood firm to claim a narrow victory.
Bernardo Silva and Claudio Bravo, both of whom were involved in this summer’s Confederations Cup in Russia, were handed starts after their extended summer breaks denied them a proper pre-season, and youngsters Brahim Diaz and Phil Foden were also given the nod after their outstanding performances in the US.
Sterling had City’s first real effort, letting fly from 25 yards after wriggling past a couple of challenges, but Gorka Iraizoz tipped over in fine style to keep the scores level.
The deadlock was broken after 14 minutes when Portu scored from close range after a brilliant outside-of-the-boot delivery from Aday Benitez on the left. Sane slipped at a crucial moment and Portu finished in cool fashion past the onrushing Bravo.
Cristhian Stuani nearly made it two with a low drive but Bravo got down to make a fine save and keep City in it at the break.
Ilkay Gundogan came on in the second half, his first appearance for eight months. He is now fully recovered from the knee injury he suffered against Watford in December and will bring further options in midfield for Guardiola this season.
He looked excellent given the time he has spent on the sidelines and brought a fluidity to City's midfield that had been lacking.
Bernardo was denied from six yards out by Iraizoz with seconds left on the clock as City went for an equaliser, and moments later substitute Gabriel Jesus clipped the bar with a powerful effort from outside the area.
It wasn’t to be for the Blues, though. Girona took the spoils ahead of their historic La Liga debut this weekend.
Girona appeared to target Eliaquim Mangala throughout the game – but the French defender stood up to every test that came his way.
He looked quick, strong and difficult to beat.
A special mention for Raheem Sterling, too, who was positive whenever he picked up the ball, and Pablo Maffeo was superb for Girona throughout.
City face Everton on Monday in their first home Premier League game of the new season. After the win at Brighton on the opening day, City will be looking to make it six points from six.
For Girona, they face Atletico Madrid on Saturday in their first-ever top-flight game.