Ally Gilchrist and Tim Nilsen went close for City before JJ Lunney fired just wide of the Candystripes woodwork.
Derry defender Danny Lupano hooked off the line and Stephen Mallon blasted into the top corner on 64 minutes for his first City goal.
Walter Figueira sealed the points in added time with a chipped finish.
Declan Devine’s team had only managed one point from their opening two games as they welcomed a Bohs team sitting in third place.
A cagey start was followed by a series of Derry half-chances – Gilchrist headed wide from a Jamie McDonagh free-kick while striker Nilsen shot over.
However, the best opening of the first half fell to Bohs just before the break when Lunney was played through by Daniel Mandroiu but he drilled just wide.
The Dubliners made a strong start to the second half and there was controversy when Lupano got back to clear off the line to deny Keith Ward.
Ward believed the ball had crossed the line and began celebrating but the officials came down on the side of the hosts.
It proved to be a pivotal moment for Derry were soon in front thanks to a fabulous finish from Mallon on his first start.
The winger beat three Bohs players before unleashing a powerful shot beyond keeper Stephen McGuinness.
Bohs failed to produce a concerted fightback but after threating in added time Derry burst upfield on the counter-attack and Adam Liddle picked out fellow substitute Figueira, who calmly dinked the ball over McGuinness and into the net.
Derry City: Peter Cherrie, Colm Horgan, Eoin Toal, Danny Lupano, Ally Gilchrist (Walter Figueira 49); Conor McCormack, Conor Clifford (Ciaron Harkin 62), Jack Malone; Jamie McDonagh, Tim Nilsen (Adam Liddle 69), Stephen Mallon.
Bohemians: Stephen McGuinness, Michael Barker, Dan Casey, Rob Cornwall, Anthony Breslin; Keith Ward (Luke Wade-Slater 84), JJ Lunney, Keith Buckey, Kris Twardek (Daniel Grant 68); Daniel Mandroiu; Glen McAley (Andre Wright 76).
Referee: Derek Tomney (Dublin)