Bancroft was quickly into his stride from the start as he timed his off-side shots beautifully in an opening stand of 62 with Ben Charlesworth, who was well caught low down by Chris Cooke off Leonard for 19 driving at a wide delivery.
Leonard and Asitha Fernando were suffering from no-ball problems at the Ashley Down Road end, and added to their own woes when Bancroft was dropped from a difficult chance to Cooke off Zain Ul Hassan on 48.
Despite Timm van der Gugten and Ul Hassan keeping things tight, Gloucestershire were sitting pretty at 100-1 at lunch, and even prettier at tea as they added 125 further runs without loss in the afternoon.
With Price playing a watchful support role, the classy Bancroft dominated proceedings with a run-out chance on 73 his only scare as Glamorgan switched bowlers and fields with increasing frustration.
Price accelerated in the final session, with successive fours bringing up his century off 220 balls with 15 boundaries.
But with the stand just 26 short of the Shire’s all-time record, on-loan England spinner Shoaib Bashir claimed his first wicket for Glamorgan as he won an lbw shout against Price just before the new ball.
The expansive Miles Hammond (37 not out) started strongly and Bancroft picked off anything loose to add to Glamorgan’s dejection in another significant stand of 74.
The willing but misfiring Leonard kept over-stepping, but finally forced the weary Bancroft to edge to Cooke in the 94th over as a minor consolation for the visitors, who were left ruing the decision to bowl.