SK Sturm Graz and Stade Rennais shared a goalless draw at Merkur Arena, but the numbers were anything but quiet. The visitors owned more of the ball and more shots, yet could not beat Daniil Khudyakov on a night that showcased shot-stopping and last-ditch defending. In the opening round of the UEFA Europa League, both sides left with a point and a reminder that finishing matters. For the full breakdown and live data, the Sofascore match page tells the story.
Possession finished 38% to 62% for Rennes, and total shots read 11 to 23. Expected goals landed at 0.83 for Sturm and 1.98 for Rennes, which explains a lot about the flow and the frustration.
Rennes controlled long stretches and produced steady pressure. They attempted 23 shots, put 5 on target, and created 2 big chances, but also missed both. The cross count favored them too, hitting 6 of 20 (30%) compared to Sturm’s 1 of 11 (9%). Entries and retention in the final third leaned red and black, with Rennes completing 83 of 107 phases there, a sharp 78%. They also had 31 touches inside the box to Sturm’s 20, plus a 62% share of possession and 463 total passes.
Sturm, meanwhile, leaned into compactness and counters. Their 286 passes came with 188 accurate, and their long-ball accuracy sat at 19 of 59. They still found four corners after halftime, and fashioned 9 second-half shots. But the aggregate quality of those looks, per xG, remained modest. The scoreboard did not move because the shot quality and the finishing did not quite meet.
Rennes created, but the finishing fell short
Esteban Lepaul led the attempts column with 8 shots and a hefty 0.99 xG. He hit the target twice, drifted offside three times, and missed 2 big chances, which swung the result more than any other attacking number. Ludovic Blas added 5 shots and 0.53 xG, while the creative supply line hummed through Sebastian Szymański and Mousa Tamari. Szymański produced 5 key passes and 3 accurate crosses from 5 attempts. Tamari chipped in 3 key passes, 2 big chances created, and 2 accurate crosses from 3.
Rennes also rattled the woodwork once and kept the ball circulating through the back line, with Charlie Cresswell and Anthony Rouault both influential in build-up. Cresswell completed 72 of 80 passes and logged 11 clearances; Rouault hit 54 of 59 passes and made 9 clearances. Fullbacks Bryan Reynolds and Mahamadou Nagida were active outlets, combining for 10 progressive carries counted by the eye test of distance and several key passes between them. The approach worked to create volume and danger. The final touch was the missing piece.
Sturm’s wall and work-rate kept the sheet clean
Sturm were outshot and spent a good deal of time in their own half, but their defensive metrics were decisive. They won 71% of their tackles overall, ahead of Rennes on 63%. Jurgen Heil put in 6 tackles and won 5, with 4 interceptions, while Paul Koller blocked 3 shots and cleared 2. Luís Balbo, who later received a yellow card, logged 4 clearances, 3 won tackles, and even a last-man tackle before departing. Joshua Quarshie added 3 clearances and 2 blocks in a busy night for the back five.
Collectively, Sturm made 28 clearances and 10 interceptions, and shaded the duels at 51% won. They also handled aerials well, taking 50% of those contests and winning the ground-duel battle across the second half. On the flip side, chance creation was scarce, with crosses rarely landing and only 4 shots on target from 11 attempts. The tactical exchange was clear: Sturm sacrificed territory to protect space, then trusted transitions and set pieces for their moments.
Goalkeepers set the tone
In a draw defined by shot volume and xG imbalance, the goalkeepers provided the headline. Daniil Khudyakov posted 5 saves, including 4 from inside the box, and a high claim that calmed a tense spell. His goals prevented metric hit 0.97, which matches the eye test of key interventions at key times. He also recovered 8 loose balls and kept distribution simple, completing 15 of 29 passes.
Brice Samba, captaining Rennes, was steady too with 4 saves and 0.29 goals prevented. He saw less high-danger work than his opposite number but still managed the space well, adding a punch and two clearances. With shots on target close at 4 to 5, the difference lived in the quality of those efforts and the responses to them. Both keepers earned their clean sheets, and both gave their teams a platform.
MVP: Daniil Khudyakov keeps Sturm steady
Khudyakov topped the Sofascore charts with a Sofascore Rating of 8.2, the best on the pitch. He faced 23 shots behind a hard-working defense and stood up each time a lane opened. The 5 saves and 0.97 goals prevented reflect not just activity but difficulty. Four of those stops came from inside the box, where reflexes and positioning matter most. He added 8 recoveries, a high claim and one punch to round out a complete goalkeeping display.
On the ball, his 29 passes and 5 of 19 long balls helped relieve pressure when needed. It was not flashy distribution, just the right decisions at the right times. For Rennes, Rouault and Cresswell both rated 7.6 and cleared almost everything sent their way. Sturm’s Balbo also hit 7.6 before coming off, highlighting how much of this match lived in both penalty areas.
Player of the Match
By Sofascore Rating, the best player was Daniil Khudyakov with an 8.2. Fans agreed, voting Daniil Khudyakov first with 230 votes out of 475. In this case, the ratings and the crowd picked the same standout.
SK Sturm Graz and Stade Rennais shared a goalless draw at Merkur Arena, but the numbers were anything but quiet. The visitors owned more of the ball and more shots, yet could not beat Daniil Khudyakov on a night that showcased shot-stopping and last-ditch defending. In the opening round of the UEFA Europa League, both sides left with a point and a reminder that finishing matters. For the full breakdown and live data, the Sofascore match page tells the story.
Possession finished 38% to 62% for Rennes, and total shots read 11 to 23. Expected goals landed at 0.83 for Sturm and 1.98 for Rennes, which explains a lot about the flow and the frustration.
Match flow by the numbers
Rennes controlled long stretches and produced steady pressure. They attempted 23 shots, put 5 on target, and created 2 big chances, but also missed both. The cross count favored them too, hitting 6 of 20 (30%) compared to Sturm’s 1 of 11 (9%). Entries and retention in the final third leaned red and black, with Rennes completing 83 of 107 phases there, a sharp 78%. They also had 31 touches inside the box to Sturm’s 20, plus a 62% share of possession and 463 total passes.
Sturm, meanwhile, leaned into compactness and counters. Their 286 passes came with 188 accurate, and their long-ball accuracy sat at 19 of 59. They still found four corners after halftime, and fashioned 9 second-half shots. But the aggregate quality of those looks, per xG, remained modest. The scoreboard did not move because the shot quality and the finishing did not quite meet.
Rennes created, but the finishing fell short
Esteban Lepaul led the attempts column with 8 shots and a hefty 0.99 xG. He hit the target twice, drifted offside three times, and missed 2 big chances, which swung the result more than any other attacking number. Ludovic Blas added 5 shots and 0.53 xG, while the creative supply line hummed through Sebastian Szymański and Mousa Tamari. Szymański produced 5 key passes and 3 accurate crosses from 5 attempts. Tamari chipped in 3 key passes, 2 big chances created, and 2 accurate crosses from 3.
Rennes also rattled the woodwork once and kept the ball circulating through the back line, with Charlie Cresswell and Anthony Rouault both influential in build-up. Cresswell completed 72 of 80 passes and logged 11 clearances; Rouault hit 54 of 59 passes and made 9 clearances. Fullbacks Bryan Reynolds and Mahamadou Nagida were active outlets, combining for 10 progressive carries counted by the eye test of distance and several key passes between them. The approach worked to create volume and danger. The final touch was the missing piece.
Sturm’s wall and work-rate kept the sheet clean
Sturm were outshot and spent a good deal of time in their own half, but their defensive metrics were decisive. They won 71% of their tackles overall, ahead of Rennes on 63%. Jurgen Heil put in 6 tackles and won 5, with 4 interceptions, while Paul Koller blocked 3 shots and cleared 2. Luís Balbo, who later received a yellow card, logged 4 clearances, 3 won tackles, and even a last-man tackle before departing. Joshua Quarshie added 3 clearances and 2 blocks in a busy night for the back five.
Collectively, Sturm made 28 clearances and 10 interceptions, and shaded the duels at 51% won. They also handled aerials well, taking 50% of those contests and winning the ground-duel battle across the second half. On the flip side, chance creation was scarce, with crosses rarely landing and only 4 shots on target from 11 attempts. The tactical exchange was clear: Sturm sacrificed territory to protect space, then trusted transitions and set pieces for their moments.
Goalkeepers set the tone
In a draw defined by shot volume and xG imbalance, the goalkeepers provided the headline. Daniil Khudyakov posted 5 saves, including 4 from inside the box, and a high claim that calmed a tense spell. His goals prevented metric hit 0.97, which matches the eye test of key interventions at key times. He also recovered 8 loose balls and kept distribution simple, completing 15 of 29 passes.
Brice Samba, captaining Rennes, was steady too with 4 saves and 0.29 goals prevented. He saw less high-danger work than his opposite number but still managed the space well, adding a punch and two clearances. With shots on target close at 4 to 5, the difference lived in the quality of those efforts and the responses to them. Both keepers earned their clean sheets, and both gave their teams a platform.
MVP: Daniil Khudyakov keeps Sturm steady
Khudyakov topped the Sofascore charts with a Sofascore Rating of 8.2, the best on the pitch. He faced 23 shots behind a hard-working defense and stood up each time a lane opened. The 5 saves and 0.97 goals prevented reflect not just activity but difficulty. Four of those stops came from inside the box, where reflexes and positioning matter most. He added 8 recoveries, a high claim and one punch to round out a complete goalkeeping display.
On the ball, his 29 passes and 5 of 19 long balls helped relieve pressure when needed. It was not flashy distribution, just the right decisions at the right times. For Rennes, Rouault and Cresswell both rated 7.6 and cleared almost everything sent their way. Sturm’s Balbo also hit 7.6 before coming off, highlighting how much of this match lived in both penalty areas.
Player of the Match
By Sofascore Rating, the best player was Daniil Khudyakov with an 8.2. Fans agreed, voting Daniil Khudyakov first with 230 votes out of 475. In this case, the ratings and the crowd picked the same standout.