The first-five ended up by kicking four penalties and a conversion for 14 points for Otago, but his opponent McCashin kicked four penalties and two conversions for his 16-point haul.
After trading penalties, the scores were locked at 12-all at the break.
However, the Steamers loose forward trio of Sam Cane, Luke Braid and Tanerau Latimer turned over copious amounts of Otago's ball at the breakdown in the second stanza, during which the visitors were outmuscled.
Referee Elliot finally resorted to the yellow card for the constant penalties at the breakdown send ing Otago's TJ Ione to the bin.
Being a man down proved costly with the first try coming at the 54th minute to Tristan Moran, after some sustained pressure, which McCashin had no trouble converting.
Luke Braid had the Steamers second four minutes later after some slick backline play which McCashin again converted.
Moran scored his second try 10 minutes later when he fell on to a ball controlled by Otago on their line.
Otago got a consolation try to Tony Ensor with two minutes to go, with Parker converting to finish the match 31-19.
Scorers:
Bay of Plenty 31 (Tristan Moran 2, Luke
Braid tries; Nick McCashin 2 con, 4 pens)
Otago 19 (Tony Ensor try; Hayden Parks 1 con, 3 pens)
Halftime: 12-12