Canterbury opened the stronger and were rewarded with a try to Josh McKay in the seventh minute, converted by Brett Cameron, for an early 7-0 advantage.

But the home side showed plenty of enterprise and gradually swung momentum back their way, with winger Chase Tiatia grabbing a well-deserved try, converted by Mike Delany, to draw even.

They took their first lead, when lock Tyler Ardron plunged over, but that stung Canterbury into response, with prop Daniel Lienert-Brown scoring by the posts for a 14-12 half-time margin.

The visitors had a chance to add to their advantage with a five-metre scrum just before the break, but the Bay forwards steamrolled their opponents off the ball.

When they scored first after the restart - a well-taken try to second-five Terrence Hepetema - the Steamers were 19-14 ahead and seemed to have wrested the initiative.

In reality, that was the last time they were in contention.

Canterbury retook the lead with McKay's second try from Cameron's long overlap pass and moments later, with their forwards now rampant, referee Michael Winter awarded a penalty try, after Bay of Plenty brought down a five-metre scrum.

Now up 28-19, Cameron sealed the result with a penalty and Canterbury held on for victory.