The Addax driver had never previously qualified higher than fifth and is yet to finish on the podium in over two seasons of GP2.
But he proved his fastest time in morning practice was no fluke as he blasted to a 1m21.195s lap at the end of the second part of the split qualifying session.
Carlin's Max Chilton was fastest in the first group and will share the front row with Cecotto.
Caterham driver Giedo van der Garde had looked set to top group one as he dominated much of the session with a series of ever-faster laps. But his eventual 1m21.475s proved insufficient when Chilton came through with a 1m21.320s right at the end.
Chilton appeared secure in pole for a spell as the early group two times were some way off his benchmark. Then iSport's Marcus Ericsson produced a 1m21.249s lap to not only blitz his group two rivals, but depose Chilton from outright pole.
Red flags flew soon afterwards when Rodolfo Gonzalez (Caterham) crashed at the Swimming Pool entrance. There were just over two minutes left on the clocks at the restart, and that proved to be sufficient time for Cecotto to beat Ericsson by 0.149 seconds, pushing the Swede back to third.
Ericsson will share row two with van der Garde, while title contenders Luiz Razia (Arden) and Davide Valsecchi (DAMS) line up fifth and seventh, split by Ericsson's team-mate Jolyon Palmer.
Monaco qualifying results (driver, team, best lap, laps completed)
1.Max Chilton (Carlin) 1:21.320, 10
2. Giedo van der Garde (Caterham Racing) 1:21.475, 10
3. Jolyon Palmer (iSport International) 1:21.530, 10
4. Josef Kral (Barwa Addax Team) 1:21.776, 8
5. Esteban Gutierrez (Lotus GP) 1:21.796, 10
6. Stefano Coletti (Scuderia Coloni) 1:22.174, 10
7. Stephane Richelmi (Trident Racing) 1:22.326, 10
8. Nathanael Berthon (Racing Engineering) 1:22.475, 9
9. Felipe Nasr (DAMS) 1:22.650, 10
10. Simon Trummer (Arden International) 1:22.997, 10
11. Fabrizio Crestani (Venezuela GP Lazarus) 1:23.193, 10
12. Victor Guerin (Ocean Racing Technology) 1:23.792, 8
13. Ricardo Teixeira (Rapax) 1:25.661, 10
1. Johnny Cecotto (Barwa Addax Team) 1:21.195, 9
2. Marcus Ericsson (iSport International) 1:21.249, 9
3. Luiz Razia (Arden International) 1:21.858, 10
4. Davide Valsecchi (DAMS) 1:21.912, 10
5. Fabio Leimer (Racing Engineering) 1:22.053, 10
6. Tom Dillmann (Rapax) 1:22.288, 11
7. James Calado (Lotus GP) 1:22.598, 10
8. Julian Leal (Trident Racing) 1:22.762, 11
9. Rodolfo Gonzalez (Caterham Racing) 1:22.873, 7
10. Nigel Melker (Ocean Racing Technology) 1:22.996, 10
11. Fabio Onidi (Scuderia Coloni) 1:23.020, 10
12. Rio Haryanto (Carlin) 1:23.539, 10
13. Giancarlo Serenelli (Venezuela GP Lazarus) 1:25.907, 9