
| 2010-11 | J18 Elit | Tingsryds AIF J18 | 28 | 1 | 6 | 7 | 1 | - | - | 4 |
| 2011-12 | SuperElit | HV71 J20 | 3 | 0 | 1 | 1 | 0 | - | - | 0 |
| 2011-12 | J18 Elit | HV71 J18 | 22 | 3 | 5 | 8 | 8 | - | - | 8 |
| 2012-13 | SuperElit | HV71 J20 | 42 | 3 | 18 | 21 | 8 | - | - | 28 |
| 2012-13 | J18 Elit | HV71 J18 | 8 | 1 | 4 | 5 | 4 | - | - | 2 |
| 2013-14 | SHL | HV71 | 22 | 0 | 4 | 4 | -4 | - | - | 18 |
| 2013-14 | SuperElit | HV71 J20 | 30 | 3 | 15 | 18 | 8 | - | - | 26 |
| 2014-15 | SHL | HV71 | 48 | 3 | 8 | 11 | 12 | - | - | 10 |
| 2014-15 | Allsvenskan | Timrå IK | 4 | 0 | 2 | 2 | -1 | - | - | 0 |
| 2014-15 | SuperElit | HV71 J20 | 2 | 0 | 0 | 0 | -1 | - | - | 0 |
| 2015-16 | SHL | HV71 | 21 | 1 | 5 | 6 | 5 | - | - | 4 |
| 2016-17 | SHL | HV71 | 48 | 3 | 9 | 12 | 20 | - | - | 20 |
| 2016-17 | Champions HL | HV71 | 7 | 0 | 1 | 1 | 0 | - | - | 6 |
| 2017-18 | SHL | HV71 | 52 | 8 | 30 | 38 | 13 | - | - | 22 |
| 2017-18 | Champions HL | HV71 | 6 | 0 | 5 | 5 | 2 | - | - | 0 |
| 2018-19 | NHL | Buffalo Sabres | 33 | 1 | 5 | 6 | -8 | 37 | 2.7% | 20 |
| 2018-19 | AHL | Rochester Americans | 30 | 4 | 22 | 26 | 22 | - | - | 14 |
| 2019-20 | NHL | Buffalo Sabres | 13 | 0 | 0 | 0 | -4 | 6 | 0.0% | 4 |
| 2019-20 | AHL | Rochester Americans | 37 | 6 | 17 | 23 | 4 | - | - | 20 |
| 2020-21 | KHL | Traktor Chelyabinsk | 57 | 7 | 21 | 28 | 5 | - | - | 34 |
| 2021-22 | KHL | Traktor Chelyabinsk | 40 | 0 | 11 | 11 | 0 | - | - | 28 |
| 2022-23 | NHL | Buffalo Sabres | 17 | 1 | 2 | 3 | -4 | 14 | 7.1% | 0 |
| 2022-23 | AHL | Rochester Americans | 47 | 3 | 25 | 28 | 0 | - | - | 35 |
| 2023-24 | NL | Lausanne HC | 52 | 5 | 16 | 21 | 14 | - | - | 26 |
| 2025-26 | NL | SC Rapperswil-Jona Lakers | 11 | 1 | 6 | 7 | 2 | - | - | 0 |
| NHL Totals | – | 63 | 2 | 7 | 9 | -16 | 57 | 3.5% | 24 | |
| AHL Totals | – | 114 | 13 | 64 | 77 | 26 | - | - | 69 | |
| 2010-11 | TV-Pucken | Småland | 8 | 0 | 3 | 3 | 10 | - | - | 2 |
| 2010-11 | J18 Elit | Tingsryds AIF J18 | 3 | 0 | 1 | 1 | -1 | - | - | 0 |
| 2011-12 | J18 Allsvenskan | HV71 J18 | 3 | 0 | 1 | 1 | -1 | - | - | 0 |
| 2012-13 | SuperElit | HV71 J20 | 7 | 1 | 3 | 4 | 5 | - | - | 4 |
| 2013-14 | SHL | HV71 | 6 | 0 | 0 | 0 | 2 | - | - | 0 |
| 2013-14 | SuperElit | HV71 J20 | 4 | 1 | 1 | 2 | 7 | - | - | 6 |
| 2014-15 | Champions HL | HV71 | 4 | 0 | 0 | 0 | -2 | - | - | 2 |
| 2015-16 | SHL | HV71 | 6 | 1 | 1 | 2 | -1 | - | - | 0 |
| 2016-17 | SHL | HV71 | 16 | 2 | 3 | 5 | 10 | - | - | 8 |
| 2017-18 | SHL | HV71 | 2 | 0 | 0 | 0 | -1 | - | - | 0 |
| 2018-19 | AHL | Rochester Americans | 3 | 0 | 0 | 0 | -2 | - | - | 0 |
| 2020-21 | KHL | Traktor Chelyabinsk | 5 | 0 | 2 | 2 | 3 | - | - | 4 |
| 2021-22 | KHL | Traktor Chelyabinsk | 15 | 1 | 7 | 8 | 10 | - | - | 8 |
| 2022-23 | AHL | Rochester Americans | 14 | 3 | 8 | 11 | 9 | - | - | 14 |
| 2023-24 | NL | Lausanne HC | 19 | 4 | 8 | 12 | 9 | - | - | 14 |
| 2025-26 | NL | SC Rapperswil-Jona Lakers | 2 | 0 | 1 | 1 | 0 | - | - | 2 |
| AHL Totals | – | 17 | 3 | 8 | 11 | 7 | - | - | 14 | |
| Season | Opponent | Date | G | A | P | +/- | PIM | PPG | SHG | S | Shifts | TOI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Regular | @ VGK | Dec 19 | 1 | 1 | 2 | 1 | 0 | 0 | 0 | 1 | 20 | 13:31 |
| Regular | @ ARI | Dec 17 | 0 | 0 | 0 | -1 | 0 | 0 | 0 | 0 | 16 | 9:34 |
| Regular | @ COL | Dec 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 28 | 17:44 |
| Regular | @ CBJ | Dec 7 | 0 | 0 | 0 | -2 | 0 | 0 | 0 | 1 | 23 | 13:52 |
| Regular | vs COL | Dec 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 12 | 6:50 |