Monday night's midtable clash in the Betfred Championship saw sixth-placed York City Knights entertain Bradford Bulls, sitting in ninth place, with neither team having a stellar record in their recent games.
The Bulls had won only the latest of their last six games, a 48-18 home win over Workington Town. In the same period, York had defeated Dewsbury and Newcastle in successive away trips.
Beyond that, though, both of the night's teams had notched up a sustained string of losses. Although the bookies had the hosts as clear 9-1 on favourites, and the Knights knew that a win would take them level with fourth-placed Batley. Bradford, though, could be expected to have their own ideas.
The game was preceded by a minute's applause for Jack Kirmond, who passed away last week and was the brother of Danny, who lined up in the Knights' second row.
York kicked off under steady rain, with both sets of players keeping the ball close in.
And it was the Knights who made the first mistake, losing the ball in the tackle to concede a knock-on and scrum. Bradford lost the ball forward a couple of tackled later, before York lost it again: three errors in the first three minutes.
But when the Bulls found themselves with a controlled end to the set down the York end, Aaron Murphy kicked through on the greasy surface and AJ Wallace ran in to ground it. Elliott Kear's conversion made it 0-6 to the visitors.
The Knights scored nex on 9 minutes, when Bradford invited them into ther half with an error. Ata Hingano powered over the line but was held up. Then Will Jubb dived in, scooped up the ball at dummy half and dived over to score. James Glover converted to level the scores at 6-6.
The next action came on 14 minutes when York's Pauli Pauli was sin-binned for a shoulder charge direct to the head. Bradford kicked the penalty for a 6-14 lead.
Minutes later, George Flanagan ran through York's defence for Bradford and Kear's conversion put the Bulls 8 ahead at 6-14. But York hit straight back through Matty Marsh who ran a superb full-back's line to score in the corner. Glover's conversion brought the gap back to two points at 12-14.
On 36 minutes Bradord got a penalty for a Pauli ball steal to start an attacking set deep in the City Knights' half and Miles Lawford dived over from dummy half. Kear converted again and the score was 12-20 with half-time just a coupple of minutes away.
But the kick-off saw Marsh break through the advancing Bradford line. One play-the-ball and a couple of offloads later, the ball reached Glover on the far touchline for a brilliant full-length try. He couldn't convert his own try as the hooter sounded, though, and the half-time score was 16-20.
York came out after the break and repeated the pkroblems they'd shown in the first: dropped ball, knock-ons and ill-dscipline.
They gave away a penalty 20 metres out for a high tackle on Lawfor, but Kear hit the upright and the ball bounced back into the field of play, where York knocked on - as they did again at the end of the set from the resulting scrum.
But the Knights' defence held.
Tempers spilled over when York moved up to the line and Marsh threatened to score but was grounded short and then penlised for a double-movement. Both sets of players came together and Marsh, alongside Bradford's Matty Dawson-Jones were yellowcarded on 55 minutes.
With both teams down to 12, the York players felt that the pendulum was swinging their way. They couldn't cross the line in five sets - but they defended well when Bradford had their chance at consecutive sets close to the Knights line.
With 10 minutes to go, the game hung in the balance - But Bradford still had the lead on the scoreboard, where it mattered.
They failed to complete one set where it mattered when they had posession in the York 10m, but on the second they crossed the line and were held up three times. York tstarated to push away from their own half as the clock counted down, helped by a penalty, but this time couldn't threaten the Bulls' line.
When they turned the ball over with 90 seconds to go, it seemed clear that Bradord were going to defy to the bookies after a pointless second half and defy the odds they did. The final score was a 16-20 victory to the visitors.
Full Time: 14-20.
Half Time: 14-20.
Score Progression: 0-4, 0-6, 4-6, 6-6, 6-8, 6-12, 6-14, 10-14, 12-14, 12-16, 12-20, 16-20. HT. 16-20. FT.
Lead: Bradford - Square - Bradford.
York City Knights: Marsh (T Y55); Brown, Glover (2G, T), Ogden, Towse; O'Hagan, Hingano; Pauli (Y14), Jubb (T), Michael, Kirmond, Clarkson, Thompson. Substitutes: Garrusm Teanby, Dixon, Antrobus.
Bradford Bulls: Kear (3G Pen); Dawson-Jones (Y 55), Evans, Gill, Millar; Hallas, Lawford (T); Scurr, Flanagan (T) Snr, Crossley, Wallace (T), Butler, Murphy, Substitutes: Doyle, England, Gannon, Walker.
Referee: Liam Rush.