Ryan Bowman's late goal saw Shrewsbury Town draw 1-1 with Bristol Rovers at the Memorial Stadium on Saturday afternoon.
The hosts opened the scoring mid-way through the second half as Ryan Loft converted from the inside box following a cross.
Town remained resilient and fought back to level the score in the final 10 minutes.
Bowman secured his first goal of the season as he poked home from set-piece specialist George Nurse's cross.
Boss Cotterill opted for a 3-4-2-1 formation against the Gas with Dan Udoh leading the line.
Jordan Shipley and Tom Bayliss were deployed as attacking midfielders, with the versatile Taylor Moore and Luke Leahy the deeper midfielders.
Bristol Rovers lined up in a 4-2-3-1 system with John Marquis up front. Aaron Collins and Harry Anderson were on the flanks with Antony Evans in the number ten role.
Town started the game on the front foot, but Rovers created the first clear-cut chance.
Marquis collected the ball in the box before twisting and turning to find himself some space.
But while he was able to get his shot away, Chey Dunkley made a brilliant block to force the ball out for a corner.
Mid-way through the half, the Pirates had another chance to open the scoring.
Following a free-kick, Anderson rose highest to meet a dangerous ball. But he planted a header against the post with Town then able to clear.
Shrewsbury responded and went on to have a flurry of excellent chances to break the deadlock before half-time.
Udoh put Alfie Kilgour under immense pressure by pressing high with the defender then playing a back-pass that almost crossed his own goal-line but was just cleared by goalkeeper James Belshaw.
Cotterill was forced into a change in the 41st minute with Udoh hobbling off after picking up a knock.
He was replaced by Rekeil Pyke – with Shrewsbury going on to create more clear-cut chances before the break.
Nurse had the first opportunity with a long-range effort but was blocked by the Rovers' defence.
Cotterill's men then went even close when Moore let fly with a powerful low drive from 20-yards that Belshaw did well to get down and parry away.
The ball fell for Pyke, who turned sharply in the box before firing inches past the post.
With the wind in their sails, Town threatened once more before the break – with Nurse finding Shipley in the area who drilled a strike wide.
Salop came out of the block lively in the second half and nearly broke the deadlock.
Shrewsbury switched to a 4-3-3 system when Bowman came on for Julien Dacosta ten minutes into the second half.
Bowman led the line with Pyke and Shipley moving to the flanks and Bayliss in the advanced midfielder role.
Leahy and Moore remained the same as well as the defence as Matthew Pennington moved to right-back.
Nurse sent a ball into the danger area after the system switch, but Luca Hoole did well and cleared for Town to win a corner.
Salop had a second chance from the corner as the ball reached the feet of Moore, who let fly from distance but fired wide.
Moore was the architect for another Salop move just after the hour mark.
He made a pass out wide to Nurse, who sent in a dangerous-looking cross that Bayliss was able to meet. However, his header was parried away by the acrobatic keeper.
A few minutes later, Bristol Rovers managed to open the scoring through substitute Ryan Loft.
Collins put a low-driven cross into the middle of the box, and Loft slotted it into the bottom corner.
Shrewsbury drew level with ten minutes to go as Bowman converted from close range. Nurse sent a corner into the heart of the box, and Bowman was able to poke it home after a scramble in the box.
There were six minutes of time added on but Shrewsbury held firm and came away with a point.
Marosi (GK), Leahy (C), Pennington, Moore, Udoh (Pyke, 40), Bayliss, Dunkley, Nurse, Shipley (Bloxham, 72), Dacosta (Bowman, 54), Flanagan
Burgoyne (GK), Craig, Barlow, Caton
Bristol Rovers XI:
Belshaw (GK), Hoole, Kilgour, Gibson, Gordon (Loft, 61), Coutts (C) (Finley, 61), Evans, Rossiter, Collins, Marquis (Saunders, 77), Anderson
Jaakkola (GK), Whelan, Sesay, Lawrence Bookings:
John Marquis and Ryan Bowman received yellow cards following fouls.