The Bulls did what fourth-placed sides do to bottom-placed opposition at altitude — they turned structural advantage into scoreboard cruelty. Zebre Parma competed in spells, found three tries, and held 58% possession in the closing ten minutes, but none of it mattered because the defensive line had been broken long before. Cameron Hanekom carried for 106 metres and six defenders beaten from the back row; that single performance tells you everything about the physical mismatch. The Bulls move to 63 league points with one round remaining and a playoff berth all but secured. Zebre Parma finish the season where they started it — last, and searching for answers that cannot be found in effort alone.
The Bulls won this match in the first two phases of every possession.
Gainline success sat at 84% across 129 carries. That is not a percentage — that is a directive. Zebre Parma's defensive line held its shape for the first collision, then fractured under the second and third. The Bulls made 881 metres and beat 27 defenders because they never had to work for go-forward. Every ruck was clean, every recycle was fast, and every next carrier found soft shoulders or retreating hips.
Zebre Parma managed 63% gainline success from 71 carries and 236 metres. Respectable numbers in isolation, meaningless in context. They needed to slow the Bulls down at source — at the ruck, at the tackle, at the offload — and never managed it. The Bulls won 81 of 84 rucks at 96% efficiency. Zebre Parma won all 55 of theirs but only arrived at 55 because they could not sustain phases long enough to build pressure.
The clearest measure of control was not possession but what each side did with it. The Bulls turned 55% possession into eight tries. Zebre Parma held 45% and found three, two of them after the contest was already decided. Cameron Hanekom carried for 106 metres from number eight. Canan Moodie ran for 92 metres from outside centre. The gainline was not contested — it was conceded.
The Bulls controlled their own ball and stole Zebre's when it mattered.
Lineout success sat at 100% — 14 from 14 — with one steal recorded. Zebre Parma managed 90%, losing one of ten, and could not generate the same launching platform. The Bulls used their set piece to attack width immediately. Sergeal Petersen scored in the 29th minute after a lineout exit that never gave Zebre time to reset. Harold Vorster's 68th-minute try came off quick lineout ball that isolated the Italian defence on the edges.
Scrums were less dominant but still tilted in the Bulls' favour. Eight won from nine attempts at 89% success. Zebre Parma matched them percentage-wise at 91% — ten from eleven — but could not convert that parity into attacking position. The one scrum the Bulls lost came early and cost nothing. The one Zebre Parma lost came in the second half and handed the Bulls another attacking platform inside the Zebre 22.
Maul defence from the Bulls was clinical. Zebre Parma recorded one maul try in the data but could not build sustained maul pressure across the match. The Bulls used their own maul sparingly — one from one — and did not need it. When your backline carries for 881 metres, you do not need to grind.
Lineouts (success) 14/14 (100%) 9/10 (90%) Scrums 8/9 10/11 Rucks (efficiency) 81/84 (96%) 55/55 (100%)
KICKING Kicks from hand 16 19 Kick/pass ratio 0.08 0.17
The Bulls did not need to win turnovers because they never lost contact with the ball.
Two turnovers won across 80 minutes tells you everything about how controlled their phase play was. They conceded 21 turnovers but spread them across 129 carries — a ratio that never hurt them because the scoreboard was already out of reach. Canan Moodie conceded four turnovers and three bad passes, yet still ran for 92 metres and scored in the 13th minute. That is the margin this match afforded.
Zebre Parma won six turnovers and could not capitalise on any of them. Their problem was not the breakdown contest — it was what happened after they won it. Fourteen turnovers conceded from 71 carries is a poor ratio, but the real damage was done in the tackle, where 27 missed attempts let the Bulls recycle before Zebre could even set their defensive line.
Jacopo Trulla missed two tackles and still scored in the 19th minute. Martin Roger conceded three bad passes and two turnovers and still converted twice. Individual errors did not decide this match because the system around them had already failed.
Zebre Parma made 141 tackles and missed 27 — that is the entire match in one line.
The Bulls beat 27 defenders and made nine clean breaks. Zebre Parma's defensive structure was present in theory and absent in execution. The first-up tackle succeeded often enough to suggest effort was not the issue. The problem was the second and third phases, where isolated defenders faced multiple runners with no effective drift or inside support. Cameron Hanekom beat six defenders from the back of a scrum or ruck because no one was there to cover the inside shoulder.
The Bulls made 85 tackles and missed nine. They did not need to make more because Zebre Parma could not build sustained attacking phases. The Italian side held 51% possession in the second half and 58% in the final ten minutes, yet only managed one try in that period — Thomas Dominguez in the 58th minute. Possession without penetration is just dignified waiting.
Sergeal Petersen missed one tackle and beat three defenders. That single missed tackle cost nothing because the defensive system around him was sound. Zebre Parma missed 27 and paid for every one of them.
The Bulls attacked the edges and the middle with equal ruthlessness.
Willie le Roux scored in the second minute, converted his own try in the third, and finished with seven conversions from eight attempts and 19 points. That early score set the rhythm — quick ruck ball, runners in motion, and a playmaker who never let the tempo drop. Canan Moodie's 13th-minute try came off a clean break that started from a lineout inside the Bulls' half. The space was there because Zebre Parma's defensive line was already stretched.
The Bulls used 17 offloads to keep the ball alive in contact and prevent Zebre Parma from resetting. Sergeal Petersen and Harold Vorster each recorded an assist alongside their tries. The width and depth of the attacking shape forced Zebre to choose between defending the edge and covering the middle — they managed neither.
Zebre Parma's attacking patterns were more direct and less effective. Six offloads and nine defenders beaten suggests ambition, but 236 metres from 71 carries is a poor return. Giampietro Ribaldi scored on the stroke of halftime from a maul try, and Thomas Dominguez found space in the 58th minute when the Bulls had already emptied their bench. Those tries were real, but they were never threatening.
The kick-pass ratio tells the story. The Bulls sat at 0.08 — 16 kicks from hand against 197 passes. Zebre Parma managed 0.17 — 19 kicks against 114 passes. Both sides wanted to move the ball, but only one had the platform and the pace to make it count.
Neither side lost control, but the Bulls played with more precision under pressure.
Nine penalties conceded by the Bulls, six by Zebre Parma. No yellow cards, no red cards, no moments where the contest turned on indiscipline. The Bulls could afford to give away penalties because they were never defending their own line for long enough to be punished. Zebre Parma conceded fewer penalties but gained nothing from it because their defensive system could not hold.
The Bulls' penalty count rose in the final quarter as the bench cleared and fresh legs tested the offside line, but by then the score was 40-19 and the contest was over. Zebre Parma played within the laws and still conceded 54 points. That is not a discipline problem — that is a depth problem.
Penalties conceded 9 6 Yellow cards 0 0
Willie le Roux ran this match from first whistle to last. One try, seven conversions from eight, 54 metres, and eight tackles without a miss. He controlled tempo, kicked intelligently, and never let Zebre Parma settle into any defensive rhythm. His conversion in the third minute set the tone — clinical under no pressure, which became clinical under scoreboard pressure as the tries kept coming.
Cameron Hanekom delivered the standout individual performance. 106 metres, six defenders beaten, one clean break, nine tackles with one miss, and a try in the 62nd minute that put the result beyond any remaining doubt. He carried from the base of the scrum like a centre and tackled like a flanker. This was the kind of performance that wins playoff matches, delivered in a regular-season fixture that never required it.
Canan Moodie ran for 92 metres, beat two defenders, made a clean break, and scored in the 13th minute. He also conceded four turnovers and three bad passes. That combination of production and error defines a player still learning when to release and when to hold. The try and the metres mattered more than the mistakes because the Bulls' system absorbed the latter without consequence.
Sergeal Petersen scored in the 29th minute, recorded an assist, ran for 52 metres, and beat three defenders. He missed one tackle, which went unpunished. His pace on the edge gave the Bulls an outlet every time the middle tightened, and his assist for one of the later tries showed awareness beyond his own finish line.
Harold Vorster and Cheswill Jooste both scored, both contributed, and both played within the structure that le Roux and Hanekom had already established. Vorster added 38 metres and a clean break; Jooste ran for 56 metres and beat two defenders before making way for Stedman Gans at halftime. Ruan Vermaak and Jeandre Rudolph came off the bench and scored in the 48th and 76th minutes respectively — tries that underlined the depth gap between these two sides.
For Zebre Parma, Jacopo Trulla scored in the 19th minute and ran for 25 metres with a clean break. He missed two tackles in a defensive system that could not afford any misses. Martin Roger converted twice from two attempts but also conceded three bad passes and two turnovers. Giampietro Ribaldi scored from a maul try on the stroke of halftime, a moment of genuine quality in a match otherwise defined by the opposition's excellence. Thomas Dominguez scored in the 58th minute when the Bulls' bench had rotated and the intensity had dropped. It was a well-taken try in a context that no longer mattered.
The Bulls move to 63 league points with one fixture remaining and a top-four finish all but confirmed. They have now scored 90 tries in 19 matches and hold a points difference of plus-195. This was not a statement performance because no statement was required — it was simple execution against opposition that could not match the physicality or the pace. The playoff fixtures will ask harder questions. This match provided no answers.
Zebre Parma finish the season with 15 league points from 19 matches, a points difference of minus-310, and 46 tries conceded in their last five fixtures. They competed in moments, found three tries, and never stopped working, but the gap between effort and output remains unbridgeable. The structural issues are obvious — a defensive system that cannot hold under sustained pressure, a forward pack that lacks the depth to compete across 80 minutes, and a backline that creates opportunities it cannot convert. This was their 16th loss in 18 matches. The season ends next week, and the questions remain the same.
STATS TABLE
Bulls Zebre Parma ATTACK Possession 55% 45% Territory — — Carries · Metres 129 · 881 m 71 · 236 m Gain line % 84% 63% Clean breaks · Defenders beaten 9 · 27 5 · 9 CER 3.98 1.69
DEFENCE Tackles (missed) 85 (9) 141 (27) Turnovers (won / conceded) 2 / 21 6 / 14
The Veldt uses essential cookies only — no tracking, no ad networks. See our Privacy Policy & Cookie Policy.