Match record
Premiership · Scotland · 2025/2026
07 Dec 2025 · Completed fixture
Celtic vs Hearts
- Competition
- Premiership (Scotland)
- Season
- 2025/2026
- Date
- 07 Dec 2025
- Venue
- Celtic Park
- Status
- Completed
- Half time
- 0–1
Match events
Goals, cards, substitutions and other recorded events in chronological order.
- 35' · Yellow cardCELHyun-jun YangFoul
- 36' · Yellow cardHEAHarry MilneFoul36' · Yellow cardHarry MilneFoul
- 43' · Goal0-1HEACláudio BragaLeft foot shot43' · Goal0-1Cláudio BragaLeft foot shot
- 59' · SubstitutionCELLuke McCowan on · Sebastian Tounekti off
- 60' · Yellow cardHEACammy DevlinFoul60' · Yellow cardCammy DevlinFoul
- 62' · Yellow cardHEAMichael SteinwenderFoul62' · Yellow cardMichael SteinwenderFoul
- 64' · Goal0-2HEAOisin McEntee · assist Harry MilneHeader64' · Goal0-2Oisin McEntee · assist Harry MilneHeader
- 65' · SubstitutionCELJohnny Kenny on · Benjamin Nygren off
- 71' · SubstitutionHEAStephen Kingsley on · Harry Milne off71' · SubstitutionStephen Kingsley on · Harry Milne off
- 71' · SubstitutionHEAJamie McCart on · Alexandros Kyziridis off71' · SubstitutionJamie McCart on · Alexandros Kyziridis off
- 77' · SubstitutionHEAFrankie Kent on · Craig Halkett off77' · SubstitutionFrankie Kent on · Craig Halkett off
- 78' · SubstitutionHEAPierre Landry Kaboré on · Cláudio Braga off78' · SubstitutionPierre Landry Kaboré on · Cláudio Braga off
- 85' · SubstitutionHEAChristian Borchgrevink on · Lawrence Shankland off85' · SubstitutionChristian Borchgrevink on · Lawrence Shankland off
- 90+3' · Goal1-2CELKieran Tierney · assist Daizen MaedaLeft foot shot
Timeline of imported events only. The full event log with teams and players is listed in the table below.
- MinEventPlayers
- 35'Yellow cardCelticFoulHyun-jun Yang
- 36'Yellow cardHeartsFoulHarry Milne
- 43'GoalHearts0-1Left foot shotCláudio Braga
- 59'SubstitutionCelticLuke McCowan on · Sebastian Tounekti off
- 60'Yellow cardHeartsFoulCammy Devlin
- 62'Yellow cardHeartsFoulMichael Steinwender
- 64'GoalHearts0-2HeaderOisin McEntee · assist Harry Milne
- 65'SubstitutionCelticJohnny Kenny on · Benjamin Nygren off
- 71'SubstitutionHeartsStephen Kingsley on · Harry Milne off
- 71'SubstitutionHeartsJamie McCart on · Alexandros Kyziridis off
- 77'SubstitutionHeartsFrankie Kent on · Craig Halkett off
- 78'SubstitutionHeartsPierre Landry Kaboré on · Cláudio Braga off
- 85'SubstitutionHeartsChristian Borchgrevink on · Lawrence Shankland off
- 90+3'GoalCeltic1-2Left foot shotKieran Tierney · assist Daizen Maeda
| Min | Event | Team | Players |
|---|---|---|---|
| 35' | Yellow cardFoul | Celtic | Hyun-jun Yang |
| 36' | Yellow cardFoul | Hearts | Harry Milne |
| 43' | Goal0-1Left foot shot | Hearts | Cláudio Braga |
| 59' | Substitution | Celtic | Luke McCowan on · Sebastian Tounekti off |
| 60' | Yellow cardFoul | Hearts | Cammy Devlin |
| 62' | Yellow cardFoul | Hearts | Michael Steinwender |
| 64' | Goal0-2Header | Hearts | Oisin McEntee · assist Harry Milne |
| 65' | Substitution | Celtic | Johnny Kenny on · Benjamin Nygren off |
| 71' | Substitution | Hearts | Stephen Kingsley on · Harry Milne off |
| 71' | Substitution | Hearts | Jamie McCart on · Alexandros Kyziridis off |
| 77' | Substitution | Hearts | Frankie Kent on · Craig Halkett off |
| 78' | Substitution | Hearts | Pierre Landry Kaboré on · Cláudio Braga off |
| 85' | Substitution | Hearts | Christian Borchgrevink on · Lawrence Shankland off |
| 90+3' | Goal1-2Left foot shot | Celtic | Kieran Tierney · assist Daizen Maeda |
Events are shown exactly as imported. A dash means the provider recorded no player for that event.
Team performance
Aggregated from player match data — these are not official provider team statistics. Only statistics recorded for both teams are compared.
Aggregated from player match data: summed from the individual statistics of 29 players in this fixture. These are not official provider team statistics. "Not available" means the provider sent no value — it never means zero.
Match performers
Existing match-level values only. No new rating, ranking or performer formula is applied.
- Kieran TierneyDefender · 90'
- Rtg
- 8.38
- G
- 1
- A
- 0
- Hyun-jun YangMidfielder · 90'
- Rtg
- 7.66
- G
- 0
- A
- 0
- Reo HatateAttacker · 90'
- Rtg
- 7.18
- G
- 0
- A
- 0
- Benjamin NygrenAttacker · 65'
- Rtg
- 7.11
- G
- 0
- A
- 0
- Auston TrustyDefender · 90'
- Rtg
- 7.10
- G
- 0
- A
- 0
- Oisin McEnteeMidfielder · 90'
- Rtg
- 7.48
- G
- 1
- A
- 0
- Stuart FindlayDefender · 90'
- Rtg
- 7.08
- G
- 0
- A
- 0
- Craig Halkett Defender · 77'
- Rtg
- 7.07
- G
- 0
- A
- 0
- Cammy DevlinMidfielder · 90'
- Rtg
- 6.97
- G
- 0
- A
- 0
- Alexander SchwolowGoalkeeper · 90'
- Rtg
- 6.95
- G
- 0
- A
- 0
Existing player match values only — rating, goals and assists as imported, ordered by the stored provider rating. No performer score is calculated. "N/A" means the provider sent no value.
Highest match impact
- 01Auston TrustyCeltic74.3
- 02Stuart FindlayHearts69.6
- 03Craig Halkett Hearts66.8
Only appearances with a valid, fully covered match impact value.
Highest rating
- 01Kieran TierneyCeltic8.38
- 02Hyun-jun YangCeltic7.66
- 03Oisin McEnteeHearts7.48
Provider match rating, shown as imported.
Most key passes
- 01Daizen MaedaCeltic3
- 02Kieran TierneyCeltic3
- 03Arne EngelsCeltic2
Imported match statistic.
Most tackles
- 01Auston TrustyCeltic6
- 02Cammy DevlinHearts6
- 03Hyun-jun YangCeltic4
Imported match statistic.
Most successful dribbles
- 01Hyun-jun YangCeltic2
- 02Benjamin NygrenCeltic2
- 03Callum McGregorCeltic1
Imported match statistic.
Lineups
Starters and substitutes as imported. Substitutes without recorded minutes are flagged as unused and never counted as an appearance.
Celtic
Formation 3-4-2-1Starting eleven
| # | Player | Position | Min | Rating | G | A | Cards | Impact |
|---|---|---|---|---|---|---|---|---|
| 27 | Arne Engels | Midfielder | 90 | 7.06 | 0 | 0 | 0 | 57.9 |
| 6 | Auston Trusty | Defender | 90 | 7.10 | 0 | 0 | 0 | 74.3 |
| 42 | Callum McGregor | Midfielder | 90 | 6.56 | 0 | 0 | 0 | — |
| 38 | Daizen Maeda | Attacker | 90 | 6.61 | 0 | 1 | 0 | — |
| 13 | Hyun-jun Yang | Midfielder | 90 | 7.66 | 0 | 0 | 1Y | 63.8 |
| 1 | Kasper Schmeichel | Goalkeeper | 90 | 6.37 | 0 | 0 | 0 | 50.1 |
| 63 | Kieran Tierney | Defender | 90 | 8.38 | 1 | 0 | 0 | 66.1 |
| 5 | Liam Scales | Defender | 90 | 6.85 | 0 | 0 | 0 | 60.0 |
| 41 | Reo Hatate | Attacker | 90 | 7.18 | 0 | 0 | 0 | 40.9 |
| 8 | Benjamin Nygren | Attacker | 65 | 7.11 | 0 | 0 | 0 | — |
| 23 | Sebastian Tounekti | Midfielder | 59 | 6.46 | 0 | 0 | 0 | 56.5 |
Substitutes
| # | Player | Position | Min | Rating | G | A | Cards | Impact |
|---|---|---|---|---|---|---|---|---|
| 14 | Luke McCowan | Midfielder | 31 | 6.82 | 0 | 0 | 0 | — |
| 24 | Johnny Kenny | Attacker | 25 | 6.49 | 0 | 0 | 0 | — |
| 56 | Anthony RalstonUnused | Defender | — | — | — | — | — | — |
| 51 | Colby DonovanUnused | Defender | — | — | — | — | — | — |
| 47 | Dane MurrayUnused | Defender | — | — | — | — | — | — |
| 17 | Kelechi IheanachoUnused | Attacker | — | — | — | — | — | — |
| 10 | Michel-Ange BalikwishaUnused | Attacker | — | — | — | — | — | — |
| 28 | Paulo BernardoUnused | Midfielder | — | — | — | — | — | — |
| 12 | Viljami SinisaloUnused | Goalkeeper | — | — | — | — | — | — |
Hearts
Formation 4-2-3-1Starting eleven
| # | Player | Position | Min | Rating | G | A | Cards | Impact |
|---|---|---|---|---|---|---|---|---|
| 25 | Alexander Schwolow | Goalkeeper | 90 | 6.95 | 0 | 0 | 0 | 58.7 |
| 14 | Cammy Devlin | Midfielder | 90 | 6.97 | 0 | 0 | 1Y | — |
| 15 | Michael Steinwender | Defender | 90 | 6.93 | 0 | 0 | 1Y | — |
| 31 | Oisin McEntee | Midfielder | 90 | 7.48 | 1 | 0 | 0 | 47.3 |
| 19 | Stuart Findlay | Defender | 90 | 7.08 | 0 | 0 | 0 | 69.6 |
| 22 | Tómas Bent Magnússon | Midfielder | 90 | 6.63 | 0 | 0 | 0 | — |
| 9 | Lawrence Shankland | Attacker | 85 | 6.53 | 0 | 0 | 0 | 60.3 |
| 10 | Cláudio Braga | Midfielder | 78 | 6.21 | 1 | 0 | 0 | — |
| 4 | Craig Halkett | Defender | 77 | 7.07 | 0 | 0 | 0 | 66.8 |
| 89 | Alexandros Kyziridis | Midfielder | 71 | 6.58 | 0 | 0 | 0 | — |
| 18 | Harry Milne | Defender | 71 | 6.66 | 0 | 1 | 1Y | 59.0 |
Substitutes
| # | Player | Position | Min | Rating | G | A | Cards | Impact |
|---|---|---|---|---|---|---|---|---|
| 5 | Jamie McCart | Defender | 19 | 6.52 | 0 | 0 | 0 | — |
| 3 | Stephen Kingsley | Defender | 19 | 6.20 | 0 | 0 | 0 | — |
| 2 | Frankie Kent | Defender | 13 | 6.45 | 0 | 0 | 0 | — |
| 11 | Pierre Landry Kaboré | Attacker | 12 | 6.40 | 0 | 0 | 0 | — |
| 12 | Christian Borchgrevink | Defender | 5 | 6.20 | 0 | 0 | 0 | — |
| 16 | Blair SpittalUnused | Midfielder | — | — | — | — | — | — |
| 1 | Craig GordonUnused | Goalkeeper | — | — | — | — | — | — |
| 7 | Elton KabanguUnused | Attacker | — | — | — | — | — | — |
| 27 | Sander KartumUnused | Midfielder | — | — | — | — | — | — |
Formations
Starting shapes as recorded by the provider.
Celtic · Home
Celtic lined up 3-4-2-1 in front of the goalkeeper.
Hearts · Away
Hearts lined up 1-3-2-4 in front of the goalkeeper.
- Celtic
- 3-4-2-1
- Hearts
- 4-2-3-1
Methodology
Match data comes from the Sportmonks import. Only completed fixtures carry appearances, player statistics and match impact; team figures on this page are summed from individual player match data, and a value the provider never sent stays unavailable rather than becoming a zero.
Data source
Match, lineup, event and player statistics come from Sportmonks and are stored per fixture. Only completed fixtures with recorded minutes are aggregated — announced lineups and future fixtures are excluded.
Per 90 minutes
A per-90 value scales a season total to a full match: total × 90 ÷ minutes played. It is not calculated when minutes are missing or zero.
Missing data
The provider omits some statistics instead of sending a zero. A missing value is shown as "not available" and never converted to 0, so rates and percentiles are only produced where the underlying fields genuinely exist.
Impact Score
The Football Performance Lab Impact Score is an experimental in-house model that combines role-relative percentile families with explicit weights. It is not an official rating and not a measure of transfer value.
Minimum samples
Values are calculated internally from 180 minutes, but a player is only shown publicly with a ranked Impact Score from 360 minutes and 5 appearances, with at least 90% metric coverage and an established role. A single appearance contributes a match impact observation from 30 minutes.