The hosts pushed us to our absolute limits throughout proceedings and drew first blood through Thierno Ballo inside 12 minutes.
But Liam Delap, fresh from a midweek hat-trick against Southampton, was on hand to head home the equaliser at the back-post five minutes later.
Enzo Maresca’s men then found the crucial second five minutes after the restart, with Tommy Doyle’s awkward ball in at the near-post diverted into the net by Colwill.
However, the defender redeemed himself late on, smashing home after a corner from the right had caused some penalty box pinball.
While City will be disappointed not to have extended our six-match winning streak, the draw sees us extend our Premier League 2 unbeaten run to 13 matches, and moves us five points clear at the top of the table.
CITY+ | Watch full-match replays of every city game
What Happened?
A breathless start to proceedings set the tone for what was a thoroughly entertaining Premier League 2 match at Chelsea’s Cobham training ground.
City were first to try their luck when Delap raced onto a ball over the top, shrugged off the attentions of Colwill and fired a low effort into the near-post, which was well-saved by Karlo Ziger inside two minutes.
But it was far from one-way traffic, with Cieran Slicker having to be alert to smother a vicious low ball in from the right before the ten-minute mark.
And Chelsea should have taken the lead moments later, when the ball fell favourably for Ballo after Henry Lawrence’s effort had been well blocked by Finley Burns.
With the goal gaping, the forward couldn’t wrap his foot around the ball enough to find the target, hitting the side-netting.
But Ballo was not to be denied a second time, flicking home impressively past the despairing dive of Slicker after being teed up by his strike partner Tino Anjorin.
Not phased by that early setback, Enzo Maresca’s Young Blues immediately sought a way back into the game against the current Premier League 2 champions, helped by a slight tweak in tactics.
Centre-forward Delap began to drift wide to the left, allowing the likes of Doyle and James McAtee to be more adventurous in getting forward and playing between the lines.
Subscribe to the man city podcast
And that subtle switch yielded the breakthrough five minutes later, when Doyle’s looping ball to the back-post from the right was met by the man-in form, Delap.
The forward’s looping header had Ziger backpedaling, and nestled into the far corner of the net for 20th Premier League 2 goal of the season.
An end to end opening 20 minutes continued apace with Chelsea full-back Tino Livramento dragging an effort wide from the edge of the box after a mazy run forward.
And his fellow defender Colwill was next to go close, plucking an inviting ball in from the left out of the air before firing high and wide from a dangerous position inside the City box.
But while the hosts might have enjoyed the lion’s share of the early exchanges, we remained a constant threat going forward, with Doyle almost providing us with the advantage just before the half-hour mark.
The skipper’s energy proved a constant thorn in our opponents’ side, and he skimmed the top of the bar when trying his luck from 25 yards with a ferocious, dipping effort after a typical driving run forward.
Nonetheless, the forward pairing of Anjorin and Ballo continued to cause trouble for the hosts, and they went close once again just before the break.
After finding some space down the left, Anjorin cut the ball back into the stride of Ballo, who looked destined to find the far corner of the net.
However, under close attentions from Slicker, Burns and Callum Doyle, the forward side-footed the ball inches wide of the post and out of reach of the onrushing George Nunn.
Download the official man city app
And Doyle needed to be at his best once again just after the restart, with the centre-half producing a fantastic last-ditch block to deny Ballo after the forward was fed by Lawrence.
Nonetheless, perhaps against the run of play, City dug their heels in and got their noses in front with a bit of fortune.
Cole Palmer and the irrepressible Doyle combined down the right, with our skipper firing a tantalising low ball into the near post, which Colwill inadvertently deflected into his own net to hand City a 51st minute advantage.
And McAtee was presented with the opportunity to extend our lead two minutes later, but the midfielder fired straight at Ziger after being released by Palmer down the left.
But the hosts reminded City that the contest was far from over before the hour, going agonisingly close to hauling themselves level.
A mazy run from George McEachran down the right eventually saw the ball fall into the path of Lawrence, but the defender snatched at the chance and blazed his effort over the bar from all of six yards.
City were under no illusions that they would need to be at their best to hold on for victory in the final 30 minutes, and were thankful to Slicker for a fantastic reaction save to preserve the lead.
Another teasing ball in from the Chelsea right found Anjorin with his back to goal and, after an impressive swivel, the forward volleyed with his left towards the bottom corner.
Thankfully, Slicker was quick across his line and impressively palmed the strike away from danger.
After being starved of clear-cut chances since his goal, Delap was next to go close with 15 to play, flashing a first-time effort just wide of Ziger’s near-post after being fed by McAtee.
But as stoppage time approached, the hosts’ pressure eventually told.
A corner from the right was half cleared by City, but eventually fell into the path of Colwill.
And the defender, keen to make up for his earlier own goal, ruthlessly dispatched the chance to haul Chelsea level.
It would have been easy for City heads to drop after that late heartbreak, but Enzo Maresca’s men showed real character to pick themselves up and search for the lead once again.
And they almost found it late on through Adrian Bernabe, who glided past Lewis on the right but, looking to sneak the ball in at the near-post, could only find the side-netting from a tight angle.
How we lined up
Slicker’s goal was shielded by a back four of Alpha Diounkou, Burns, Callum Doyle and Gomes.
Romeo Lavia sat in front, with Tommy Doyle and McAtee completing the midfield three.
At the sharp end, Palmer and Bernabe started on the flanks, with Delap up front.
City XI: Slicker, Diounkou, Burns, C. Doyle, Gomes, Lavia, T. Doyle (c), McAtee, Palmer (Nmecha 69’), Bernabe, Delap
Subs: Robinson, Moulden, Robertson, Edozie
Chelsea XI: Ziger, Livramento, Sterling, Colwill, Lawrence, Bate (c), Lewis (Vale 80’), McEachran, Nunn (Fiabema 65’), Ballo, Anjorin
Subs: Wady, McClelland, Simeu
Up Next
City’s FA Youth Cup journey continues with a home clash against Everton at the Academy Stadium on Saturday 3 April.
Enzo Maresca’s men are back in Premier League 2 action the following Friday with the visit of Liverpool.
News about Chelsea v Man City
Chelsea 2-2 EDS: Full Match Replay
Relive the action from City’s entertaining 2-2 draw with Chelsea in Premier League 2. Watch more
Chelsea 2-2 EDS: Match highlights
City's EDS squad extended our unbeaten run to 13 games as we shared the spoils with Chelsea in an entertaining PL2 clash in the capital. Watch more