At a glance
- Full name
- Thomas William Bradshaw
- Born
- 27 Jul 1992
- Age today
- 34
- Nationality
- Wales
Career by season
257 recorded appearances| Season | Competition | Team | Apps | Starts | Goals | Assists | Minutes | Cards |
|---|---|---|---|---|---|---|---|---|
| 26/27 | League Two | Rotherham United | 14 | 4 | 2 | 0 | 456 | 1 |
| 25/26 | League One | Barnsley FC | 19 | 14 | 3 | 1 | 1,140 | 0 |
| 25/26 | EFL Cup | Oxford United | 2 | 1 | 0 | 1 | 69 | 0 |
| 25/26 | Championship | Oxford United | 5 | 0 | 0 | 0 | 66 | 0 |
| 24/25 | EFL Cup | Millwall FC | 2 | 0 | 0 | 0 | 52 | 0 |
| 24/25 | Championship | Oxford United | 11 | 4 | 0 | 0 | 385 | 1 |
| 24/25 | Championship | Millwall FC | 11 | 4 | 1 | 0 | 446 | 0 |
| 23/24 | International Friendly Games | Wales | 1 | 0 | 0 | 0 | 45 | 0 |
| 23/24 | FA Cup | Millwall FC | 1 | 0 | 0 | 0 | 23 | 0 |
| 23/24 | EFL Cup | Millwall FC | 1 | 1 | 0 | 0 | 61 | 0 |
| 23/24 | Championship | Millwall FC | 34 | 21 | 4 | 3 | 2,115 | 1 |
| 22/23 | FA Cup | Millwall FC | 1 | 1 | 0 | 0 | 45 | 0 |
| 22/23 | EURO, Qualification | Wales | 4 | 0 | 0 | 0 | 58 | 0 |
| 22/23 | EFL Cup | Millwall FC | 1 | 1 | 0 | 0 | 5 | 0 |
| 22/23 | Championship | Millwall FC | 41 | 38 | 16 | 4 | 3,097 | 5 |
| 21/22 | FA Cup | Millwall FC | 1 | 1 | 0 | 0 | 81 | 0 |
| 21/22 | EFL Cup | Millwall FC | 3 | 3 | 0 | 1 | 246 | 0 |
| 21/22 | Championship | Millwall FC | 24 | 16 | 9 | 1 | 1,359 | 2 |
| 20/21 | FA Cup | Millwall FC | 2 | 1 | 0 | 0 | 120 | 0 |
| 20/21 | EFL Cup | Millwall FC | 2 | 1 | 0 | 1 | 108 | 0 |
| 20/21 | Championship | Millwall FC | 29 | 12 | 5 | 0 | 1,103 | 0 |
| 19/20 | FA Cup | Millwall FC | 2 | 0 | 1 | 0 | 50 | 0 |
| 19/20 | EFL Cup | Millwall FC | 1 | 1 | 1 | 0 | 80 | 0 |
| 19/20 | Championship | Millwall FC | 45 | 29 | 8 | 2 | 2,706 | 1 |
Appearances in our supported competitions. Goals, assists and minutes come from match reports where we have them.
Match log
Newest first| Date | Competition | Match | Score | Minutes | Goals |
|---|---|---|---|---|---|
| 31 Oct 2026 | League Two | Swindon Town v Rotherham UnitedSubstitute, on 76′ | 2 – 1 | 14 | |
| 24 Oct 2026 | League Two | Rotherham United v Shrewsbury TownSubstitute, on 62′ | 3 – 3 | 28 | 1 |
| 20 Oct 2026 | League Two | Rotherham United v Newport CountySubstitute, on 85′ | 2 – 2 | 5 | |
| 17 Oct 2026 | League Two | Fleetwood Town v Rotherham United | 2 – 0 | 54 | |
| 10 Oct 2026 | League Two | Rotherham United v Gillingham FCSubstitute, on 61′ | 1 – 4 | 29 | |
| 03 Oct 2026 | League Two | Exeter City v Rotherham UnitedSubstitute, on 58′ | 1 – 0 | 32 | |
| 26 Sep 2026 | League Two | Rotherham United v Crewe Alexandra | 1 – 1 | 57 | |
| 19 Sep 2026 | League Two | Northampton Town v Rotherham UnitedSubstitute, on 67′ | 0 – 1 | 23 | |
| 12 Sep 2026 | League Two | Rotherham United v Salford CitySubstitute, on 66′ | 3 – 3 | 24 | |
| 05 Sep 2026 | League Two | Bristol Rovers v Rotherham United | 1 – 0 | 51 | |
| 01 Sep 2026 | League Two | Tranmere Rovers v Rotherham UnitedSubstitute, on 67′ | 2 – 2 | 23 | 1 |
| 29 Aug 2026 | League Two | Rotherham United v Chesterfield FC | 2 – 1 | 64 | |
| 22 Aug 2026 | League Two | Rotherham United v York CitySubstitute, on 56′ | 1 – 1 | 34 | |
| 15 Aug 2026 | League Two | Cheltenham Town v Rotherham UnitedSubstitute, on 72′ | 2 – 1 | 18 | |
| 02 May 2026 | League One | Barnsley FC v Stockport County | 1 – 3 | 72 | |
| 28 Apr 2026 | League One | Northampton Town v Barnsley FC | 0 – 1 | 45 | |
| 25 Apr 2026 | League One | Luton Town v Barnsley FC | 2 – 1 | 56 | |
| 21 Apr 2026 | League One | Stevenage FC v Barnsley FC | 1 – 0 | 90 | |
| 18 Apr 2026 | League One | Barnsley FC v Bradford City | 2 – 2 | 79 | |
| 14 Apr 2026 | League One | Port Vale FC v Barnsley FC | 0 – 0 | 90 |
Career transfers
11 recorded movesAll recorded career moves, newest first.
| Date | From | To | Move | Fee |
|---|---|---|---|---|
| 05 Aug 2026 | Oxford United | Rotherham United | Transfer | Free |
| 31 May 2026 | Barnsley FC | Oxford United | Loan return | |
| 02 Feb 2026 | Oxford United | Barnsley FC | Loan | — |
| 16 Jan 2025 | Millwall FC | Oxford United | Transfer | — |
| 03 Jan 2019 | Barnsley FC | Millwall FC | Transfer | €1.1m |
| 02 Jan 2019 | Millwall FC | Barnsley FC | Loan return | |
| 23 Aug 2018 | Barnsley FC | Millwall FC | Loan | — |
| 14 Jul 2016 | Walsall FC | Barnsley FC | Transfer | €780k |
| 01 Jul 2014 | Shrewsbury Town | Walsall FC | Transfer | — |
| 01 Jul 2010 | Not recorded | Shrewsbury Town | Transfer | — |
| 01 Jul 2009 | Aberystwyth Town FC Development Team | Shrewsbury Town U18 | Transfer | Free |
Contracts and market values are not available yet.