It was Stoke's first Premier League victory at a Manchester club and the first time they had kept a clean sheet on their top-flight travels since December, as Mark Hughes enjoyed a memorable day out at his former Etihad Stadium stomping ground. His side rise to ninth in the table after three games, while the hosts drop to fourth spot.
At the break, the Potters felt aggrieved about referee Lee Mason's failure to give them a penalty on 19 minutes, when Aleksandar Kolarov - one of three changes to the side made by Manuel Pellegrini after the 3-1 win over Liverpool on Monday - appeared to foul Diouf in the box.
Fernando had to limp off injured on 38 minutes, to be replaced by Fernandinho, and then Yaya Toure hit the crossbar from close range in stoppage time.
The only goal of the game arrived on 58 minutes. Picking up the ball after Erik Pieters' clearing header, Diouf dribbled down the centre of the pitch, nutmegged Fernandinho and took the ball on into the area before sliding home a low shot through keeper Joe Hart, who should have done better. That was the former Manchester United striker's first goal for the Potters.
The champions threw on Edin Dzeko and Jesus Navas as they went in hunt of an equaliser, but it was Diouf who soon went close to a second goal as he narrowly failed to connect with sub Peter Odemwingie's right-wing cross.
Sergio Aguero saw an optimistic handball appeal turned down, Peter Crouch headed wide at the other end and Toure was booked for diving after going down in the box after a Pieters challenge as Stoke held on to record their first league win away to Manchester City since 1980.
Pellegrini brought in Bacary Sagna for his debut as well as Kolarov and Aguero, while Stoke included Victor Moses, Crouch and Jonathan Walters.
Aguero seemed set for a rough afternoon as he was hurt in a heavy tackle from Ryan Shawcross and required treatment after just two minutes.
Stoke created the first serious opportunity when Steven Nzonzi broke, but the Frenchman failed to keep his composure and blazed well over.
Sagna cut the ball back for Samir Nasri to test Asmir Begovic with City's first opportunity. The Frenchman also showed his ability in defence with a well-timed challenge on Moses but, on the opposite flank, Kolarov was caught out and lucky not to concede a penalty.
The Serbian was wrong-footed by Diouf and then appeared to trip the Senegal forward on the edge of the area. Diouf appealed to referee Mason, but the official hardly seemed to give the incident a moment's thought.
Toure shot over as City pieced together a good move but play was held up after an off-the-ball tussle between Stevan Jovetic and Shawcross.
The pair squared up to each other but Mason, City captain Vincent Kompany and Stoke goalkeeper Begovic stepped in.
City were forced into a change when midfielder Fernando, impressive in his first few appearances for the club, seemed to injure his groin. Fellow Brazilian Fernandinho was his ready-made replacement.
City produced their best attack of the first half just before the break when Aguero's backheel fed Kolarov and his cross was clipped against the woodwork by Toure.
Nasri went close to opening the scoring soon after the restart but Phil Bardsley made a timely intervention to deflect his effort narrowly wide.
City appeared to have stepped up a gear and Toure extended Begovic as he met a Nasri cross with a well-struck shot.
Stoke were not rattled, however, and took the lead in exhilarating fashion just before the hour as Diouf started a breakaway from inside his own half.
He touched the ball past Kolarov, outpaced Fernandinho to reach the area and then slid a cool shot through Hart's legs as well.
It might have immediately got worse for City as Odemwingie robbed Martin Demichelis and whipped in a dangerous cross, but Diouf was inches away from connecting.
Odemwingie had only entered the action at half-time but it proved his last involvement and he was carried off on a stretcher after 65 minutes.
City started to show some urgency and Aguero appealed for a penalty after dribbling into the box and seeing his shot take a deflection which caught Marc Wilson on the hand.
Toure powered forward again only to see a strong drive deflected wide.
There was then controversy involving Toure when he went down in the area three minutes from time as Pieters challenged, but Mason told him to get up and brandished a yellow card - and Stoke survived the final stages to claim their first win of the campaign.
After the international break, the champions' next match is at Arsenal on Saturday 13 September, when Stoke play host to Leicester.
Charlie Nicholas on Man City v Stoke
Stoke showed very good decision making. They were well-linked, well-balanced and asked the wide men to get involved. For all Man City's possession, a lot of it was square passes from 35 yards out. I didn't see a lot of David Silva in the pockets of space that he likes.
Nasri was quiet and Aguero was the main one who was trying. For Stoke, Bardsley was outstanding and big Crouchy was back for every corner, winning every header defensively.
What a sweet day for Mark Hughes. It’s not a warning sign for Manchester City. It’s a reality check.
For me, Man City should have had a penalty. I know Yaya Toure made the most of it, but Bardsley shouldn’t make the challenge - but Stoke should have had a penalty in the first half on Diouf. There was no doubt when I saw it. They got lucky, but they also had bad luck.