World No 6 Shelton defeated 16th-ranked Cobolli 6-2, 7-5 in the final in Munich to claim his maiden ATP 500 title on clay and second clay-court title overall.
Shelton's first title at the Bavarian International Tennis Championships comes after he was a runner-up to Alexander Zverev at last year's event.
The American has now won five ATP Tour singles titles - three of which have come at ATP 500 level.
The 23-year-old also downed Alex Molcan, Joao Fonseca, Alexander Blockx and Emilio Nava en route to the title.
Cobolli, who was chasing his fourth ATP singles title and third 500 crown, beat Zverev, Vit Kopriva, Zizou Bergs and Diego Dedura to reach the final.
Shelton saved all six of the break points he faced, which were all in his opening service game, while he broke Cobolli twice in the first set and once in a much closer second set.
Shelton collected 500 ATP ranking points for his triumph in Munich, which has lifted his points total to 4,070 and leaves him sixth in the rankings - just 30 points adrift of world No 5 Felix Auger-Aliassime.
Cobolli earned 330 points for his runner-up result, which has taken his points total to 2,600 and lifted him three places to world No 13.