Striker Oleksandr Gladkiy struck either side of half-time in Lviv as Shakhtar lifted the trophy for the first time since 2013 after Dynamo Kiev's two-year reign.
Shakhtar, who reached the semi-finals of this season's Europa League, were beaten finalists the past two years having lost the 2015 final to Dynamo on penalties.
However, Mircea Lucescu's side again finished as runners-up to Dynamo in the league with the Kiev club retaining their title.