The Manchester City forward opened the scoring in the 29th minute, nodding in a free kick from Zvjezdan Misimovic to send the 12,000 crowd wild with delight at the Bilino Polje stadium.
Seven minutes later Misimovic had a penalty saved by Orestis Karnezis but Vedad Ibisevic pounced on the rebound to put Bosnia 2-0 up.
Dzeko, who celebrated his 27th birthday on Sunday, scored with another header in the 54th minute to make the game safe.
Theofanis Gekas pulled one back for the Greeks in stoppage time when he converted a pass from Giorgos Samaras.
Bosnia now have 13 points from five matches, three ahead of Greece and five in front of Slovakia.
Slovakia and Lithuania shared the points in a 1-1 draw in Zilina after Martin Jakubko cancelled out Darvydas Sernas's opener for the visitors.
In the night's other match, Liechtenstein scored their first point of the campaign after a 1-1 with Latvia.
- Sports & Recreation
- Vedad Ibisevic