Chicago Cubs 3, Seattle Mariners 2

baseball game fileFinal
T-Mobile Park · Seattle

Game flow

Every swing in the score.

The line is the running run differential: above the center favors Chicago Cubs, below favors Seattle Mariners. It runs across every plate appearance and is marked by inning along the bottom. Select a scoring marker to jump to the play.

Score differential over the gameA positive differential means Chicago Cubs led; a negative differential means Seattle Mariners led.Run differential+30−3123456789
  1. 01top 1: Ian Happ strikes out swinging.00
  2. 02top 1: Seiya Suzuki doubles (4) on a ground ball to left fielder Dominic Canzone.00
  3. 03top 1: Cody Bellinger singles on a ground ball to pitcher Luis Castillo. Seiya Suzuki scores. Throwing error by pitcher Luis Castillo.10
  4. 04top 1: Christopher Morel pops out to second baseman Jorge Polanco.10
  5. 05top 1: Dansby Swanson grounds out, third baseman Josh Rojas to first baseman Ty France.10
  6. 06bottom 1: J.P. Crawford flies out to right fielder Mike Tauchman.10
  7. 07bottom 1: Mitch Haniger strikes out swinging.10
  8. 08bottom 1: Jorge Polanco strikes out swinging.10
  9. 09top 2: Michael Busch singles on a ground ball to right fielder Mitch Haniger.10
  10. 10top 2: Nico Hoerner pops out to shortstop J. P. Crawford.10
  11. 11top 2: Mike Tauchman flies out to left fielder Dominic Canzone.10
  12. 12top 2: Yan Gomes singles on a sharp line drive to third baseman Josh Rojas. Michael Busch to 2nd.10
  13. 13top 2: Ian Happ flies out to center fielder Luke Raley.10
  14. 14bottom 2: Ty France grounds out, second baseman Nico Hoerner to first baseman Michael Busch.10
  15. 15bottom 2: Dylan Moore strikes out on a foul tip.10
  16. 16bottom 2: Mitch Garver called out on strikes.10
  17. 17top 3: Seiya Suzuki strikes out swinging.10
  18. 18top 3: Cody Bellinger strikes out swinging.10
  19. 19top 3: Christopher Morel strikes out swinging.10
  20. 20bottom 3: Cal Raleigh lines out to left fielder Ian Happ.10
  21. 21bottom 3: Luke Raley grounds out, shortstop Dansby Swanson to first baseman Michael Busch.10
  22. 22bottom 3: Josh Rojas walks.10
  23. 23bottom 3: J.P. Crawford pops out to third baseman Christopher Morel in foul territory.10
  24. 24top 4: Dansby Swanson doubles (2) on a ground ball to left fielder Dylan Moore.10
  25. 25top 4: Michael Busch homers (5) on a fly ball to right center field. Dansby Swanson scores.30
  26. 26top 4: Nico Hoerner strikes out swinging.30
  27. 27top 4: Mike Tauchman flies out sharply to center fielder Luke Raley.30
  28. 28top 4: Yan Gomes strikes out swinging.30
  29. 29bottom 4: Mitch Haniger singles on a ground ball to third baseman Christopher Morel.30
  30. 30bottom 4: Jorge Polanco strikes out swinging.30
  31. 31bottom 4: Ty France grounds into a double play, shortstop Dansby Swanson to second baseman Nico Hoerner to first baseman Michael Busch. Mitch Haniger out at 2nd. Ty France out at 1st.30
  32. 32top 5: Ian Happ strikes out swinging.30
  33. 33top 5: Seiya Suzuki singles on a ground ball to left fielder Dylan Moore.30
  34. 34top 5: Cody Bellinger flies out to left fielder Dylan Moore.30
  35. 35top 5: Seiya Suzuki caught stealing 2nd base, catcher Cal Raleigh to second baseman Jorge Polanco.30
  36. 36bottom 5: Dylan Moore singles on a ground ball to center fielder Cody Bellinger.30
  37. 37bottom 5: Mitch Garver pops out to first baseman Michael Busch in foul territory.30
  38. 38bottom 5: Cal Raleigh flies out to left fielder Ian Happ.30
  39. 39bottom 5: Luke Raley lines out to second baseman Nico Hoerner.30
  40. 40top 6: Christopher Morel flies out to left fielder Dylan Moore.30
  41. 41top 6: Dansby Swanson strikes out swinging.30
  42. 42top 6: Michael Busch strikes out swinging.30
  43. 43bottom 6: Josh Rojas flies out to left fielder Ian Happ.30
  44. 44bottom 6: J.P. Crawford singles on a line drive to center fielder Cody Bellinger.30
  45. 45bottom 6: Mitch Haniger strikes out swinging.30
  46. 46bottom 6: Jorge Polanco homers (2) on a fly ball to right center field. J.P. Crawford scores.32
  47. 47bottom 6: Ty France strikes out swinging.32
  48. 48top 7: Nico Hoerner singles on a line drive to right fielder Mitch Haniger.32
  49. 49top 7: Mike Tauchman strikes out swinging.32
  50. 50top 7: Yan Gomes grounds out, second baseman Jorge Polanco to first baseman Ty France.32
  51. 51bottom 7: Dylan Moore hit by pitch.32
  52. 52bottom 7: Mitch Garver walks. Dylan Moore to 2nd.32
  53. 53bottom 7: Cal Raleigh flies out sharply to center fielder Cody Bellinger. Dylan Moore to 3rd.32
  54. 54bottom 7: Luke Raley grounds into a double play, second baseman Nico Hoerner to shortstop Dansby Swanson to first baseman Michael Busch. Mitch Garver out at 2nd. Luke Raley out at 1st.32
  55. 55top 8: Ian Happ grounds out, third baseman Josh Rojas to first baseman Ty France.32
  56. 56top 8: Seiya Suzuki grounds out, third baseman Josh Rojas to first baseman Ty France.32
  57. 57top 8: Cody Bellinger flies out to left fielder Dylan Moore.32
  58. 58bottom 8: Josh Rojas walks.32
  59. 59bottom 8: J.P. Crawford walks. Josh Rojas to 2nd.32
  60. 60bottom 8: Mitch Haniger strikes out swinging.32
  61. 61bottom 8: Jorge Polanco walks. Josh Rojas to 3rd. J.P. Crawford to 2nd.32
  62. 62bottom 8: Ty France grounds into a double play, shortstop Dansby Swanson to first baseman Michael Busch. Jorge Polanco out at 2nd. Ty France out at 1st.32
  63. 63top 9: Christopher Morel strikes out swinging.32
  64. 64top 9: Dansby Swanson flies out to center fielder Luke Raley.32
  65. 65top 9: Michael Busch called out on strikes.32
  66. 66bottom 9: Dylan Moore strikes out swinging.32
  67. 67bottom 9: Mitch Garver strikes out swinging.32
  68. 68bottom 9: Cal Raleigh singles on a ground ball to right fielder Mike Tauchman.32
  69. 69bottom 9: Cubs challenged (tag play), call on the field was overturned: pitcher Adbert Alzolay picks off Julio Rodríguez at on throw to first baseman Michael Busch.32
Boxscore

Key evidence.

Every reported player line, kept in the API’s sport-specific stat vocabulary.

Team line

Chicago Cubs
Chicago Cubs boxscore
PlayerPosabavgb2b3bbbfcsererahhbphriplobpopsoutspapitchesrrbisbsfslgsosvtotal baseswwhip
Michael Busch1B40.50000002010.5001.750412001.25025
Seiya SuzukiDH40.50010012000.5001.250410000.75013
Ian HappLF4000000000040000020
Nico Hoerner2B30.33300011000.3330.667300000.33311
Dansby SwansonSS40.25010001000.2500.750410000.50012
Cody BellingerCF40.25000001000.2500.500400000.25011
Javier AssadP12123.176415.6670178726010.882
Christopher Morel3B4000000000040000020
Mike TauchmanRF3000000000030000010
Nick Madrigal3B000000000000000
Héctor NerisP3500001032801003
Mark Leiter Jr.P020000103200000
Yency AlmonteP1300000.333011601003
Yan GomesC30.33300001000.3330.667300000.33311
Adbert AlzolayP0300101031602101
Seattle Mariners boxscore
PlayerPosabavgb2b3bbbfcsererahhbphriplobpopsoutspapitchesrrbisbsfslgsosvtotal baseswwhip
J.P. CrawfordSS30.33300101000.5000.833410000.33301
Cal RaleighC40.25000001000.2500.500400000.25001
Mitch GarverDH3000100000.2500.25040000020
Dominic CanzoneLF000000000000000
Gabe SpeierP0300001031400000
Josh Rojas3B1000200000.6670.66730000000
Ty France1B4000000000040000010
Trent ThorntonP0300001031002000
Luis CastilloP0242371611810339001.167
Luke RaleyCF3000000000030000000
Dylan MooreLF30.33300001100.5000.833400100.33321
Jorge Polanco2B30.33300101010.5001.833412001.33324
Mitch HanigerRF40.25000001000.2500.500400000.25031
Brett de GeusP0300101031401001
Julio RodriguezPR000000000000000

Comparison

Side by side.

Final

Matchup

Before first pitch.

Probable pitchers and posted lineup context from the matchup card.

Lineups available2024-04-14T20:10:00Z · Final

Chicago Cubs

Probable pitcher: Javier Assad (R)

Seattle Mariners

Probable pitcher: Luis Castillo (R)

Play-by-play

The game, at bat by at bat.

top 1st(5)
  • Ian Happ vs Luis Castillo0-0

    Ian Happ strikes out swinging.

    0-3, 3 pitches · 0 outs before

  • Seiya Suzuki vs Luis Castillo0-0

    Seiya Suzuki doubles (4) on a ground ball to left fielder Dominic Canzone.

    3-1, 5 pitches · 1 out before

  • Cody Bellinger vs Luis Castillo1-0

    Cody Bellinger singles on a ground ball to pitcher Luis Castillo. Seiya Suzuki scores. Throwing error by pitcher Luis Castillo.

    1-0, 2 pitches · 1 out before

  • Christopher Morel vs Luis Castillo1-0

    Christopher Morel pops out to second baseman Jorge Polanco.

    0-0, 1 pitch · 1 out before

  • Dansby Swanson vs Luis Castillo1-0

    Dansby Swanson grounds out, third baseman Josh Rojas to first baseman Ty France.

    0-1, 2 pitches · 2 outs before

bottom 1st(3)
  • J.P. Crawford vs Javier Assad1-0

    J.P. Crawford flies out to right fielder Mike Tauchman.

    3-2, 8 pitches · 0 outs before

  • Mitch Haniger vs Javier Assad1-0

    Mitch Haniger strikes out swinging.

    1-3, 4 pitches · 1 out before

  • Jorge Polanco vs Javier Assad1-0

    Jorge Polanco strikes out swinging.

    1-3, 4 pitches · 2 outs before

top 2nd(5)
  • Michael Busch vs Luis Castillo1-0

    Michael Busch singles on a ground ball to right fielder Mitch Haniger.

    3-2, 6 pitches · 0 outs before

  • Nico Hoerner vs Luis Castillo1-0

    Nico Hoerner pops out to shortstop J. P. Crawford.

    0-2, 3 pitches · 0 outs before

  • Mike Tauchman vs Luis Castillo1-0

    Mike Tauchman flies out to left fielder Dominic Canzone.

    3-2, 8 pitches · 1 out before

  • Yan Gomes vs Luis Castillo1-0

    Yan Gomes singles on a sharp line drive to third baseman Josh Rojas. Michael Busch to 2nd.

    1-0, 2 pitches · 2 outs before

  • Ian Happ vs Luis Castillo1-0

    Ian Happ flies out to center fielder Luke Raley.

    2-2, 5 pitches · 2 outs before

bottom 2nd(3)
  • Ty France vs Javier Assad1-0

    Ty France grounds out, second baseman Nico Hoerner to first baseman Michael Busch.

    1-0, 2 pitches · 0 outs before

  • Dylan Moore vs Javier Assad1-0

    Dylan Moore strikes out on a foul tip.

    3-3, 6 pitches · 1 out before

  • Mitch Garver vs Javier Assad1-0

    Mitch Garver called out on strikes.

    2-3, 5 pitches · 2 outs before

top 3rd(3)
  • Seiya Suzuki vs Luis Castillo1-0

    Seiya Suzuki strikes out swinging.

    1-3, 5 pitches · 0 outs before

  • Cody Bellinger vs Luis Castillo1-0

    Cody Bellinger strikes out swinging.

    1-3, 4 pitches · 1 out before

  • Christopher Morel vs Luis Castillo1-0

    Christopher Morel strikes out swinging.

    0-3, 3 pitches · 2 outs before

bottom 3rd(4)
  • Cal Raleigh vs Javier Assad1-0

    Cal Raleigh lines out to left fielder Ian Happ.

    0-2, 4 pitches · 0 outs before

  • Luke Raley vs Javier Assad1-0

    Luke Raley grounds out, shortstop Dansby Swanson to first baseman Michael Busch.

    0-2, 3 pitches · 1 out before

  • Josh Rojas vs Javier Assad1-0

    Josh Rojas walks.

    4-1, 5 pitches · 2 outs before

  • J.P. Crawford vs Javier Assad1-0

    J.P. Crawford pops out to third baseman Christopher Morel in foul territory.

    0-2, 3 pitches · 2 outs before

top 4th(5)
  • Dansby Swanson vs Luis Castillo1-0

    Dansby Swanson doubles (2) on a ground ball to left fielder Dylan Moore.

    0-2, 3 pitches · 0 outs before

  • Michael Busch vs Luis Castillo3-0

    Michael Busch homers (5) on a fly ball to right center field. Dansby Swanson scores.

    2-2, 5 pitches · 0 outs before

  • Nico Hoerner vs Luis Castillo3-0

    Nico Hoerner strikes out swinging.

    2-3, 7 pitches · 0 outs before

  • Mike Tauchman vs Luis Castillo3-0

    Mike Tauchman flies out sharply to center fielder Luke Raley.

    3-1, 5 pitches · 1 out before

  • Yan Gomes vs Luis Castillo3-0

    Yan Gomes strikes out swinging.

    0-3, 3 pitches · 2 outs before

bottom 4th(3)
  • Mitch Haniger vs Javier Assad3-0

    Mitch Haniger singles on a ground ball to third baseman Christopher Morel.

    1-1, 3 pitches · 0 outs before

  • Jorge Polanco vs Javier Assad3-0

    Jorge Polanco strikes out swinging.

    3-3, 6 pitches · 0 outs before

  • Ty France vs Javier Assad3-0

    Ty France grounds into a double play, shortstop Dansby Swanson to second baseman Nico Hoerner to first baseman Michael Busch. Mitch Haniger out at 2nd. Ty France out at 1st.

    3-1, 5 pitches · 1 out before

top 5th(4)
  • Ian Happ vs Luis Castillo3-0

    Ian Happ strikes out swinging.

    3-3, 7 pitches · 0 outs before

  • Seiya Suzuki vs Luis Castillo3-0

    Seiya Suzuki singles on a ground ball to left fielder Dylan Moore.

    0-1, 2 pitches · 1 out before

  • Cody Bellinger vs Luis Castillo3-0

    Cody Bellinger flies out to left fielder Dylan Moore.

    0-0, 1 pitch · 1 out before

  • Christopher Morel vs Luis Castillo3-0

    Seiya Suzuki caught stealing 2nd base, catcher Cal Raleigh to second baseman Jorge Polanco.

    2-2, 4 pitches · 2 outs before

bottom 5th(4)
  • Dylan Moore vs Javier Assad3-0

    Dylan Moore singles on a ground ball to center fielder Cody Bellinger.

    1-1, 3 pitches · 0 outs before

  • Mitch Garver vs Javier Assad3-0

    Mitch Garver pops out to first baseman Michael Busch in foul territory.

    0-0, 1 pitch · 0 outs before

  • Cal Raleigh vs Javier Assad3-0

    Cal Raleigh flies out to left fielder Ian Happ.

    1-2, 4 pitches · 1 out before

  • Luke Raley vs Javier Assad3-0

    Luke Raley lines out to second baseman Nico Hoerner.

    1-2, 4 pitches · 2 outs before

top 6th(3)
  • Christopher Morel vs Luis Castillo3-0

    Christopher Morel flies out to left fielder Dylan Moore.

    2-2, 6 pitches · 0 outs before

  • Dansby Swanson vs Luis Castillo3-0

    Dansby Swanson strikes out swinging.

    2-3, 7 pitches · 1 out before

  • Michael Busch vs Luis Castillo3-0

    Michael Busch strikes out swinging.

    1-3, 4 pitches · 2 outs before

bottom 6th(5)
  • Josh Rojas vs Javier Assad3-0

    Josh Rojas flies out to left fielder Ian Happ.

    1-1, 3 pitches · 0 outs before

  • J.P. Crawford vs Javier Assad3-0

    J.P. Crawford singles on a line drive to center fielder Cody Bellinger.

    1-1, 3 pitches · 1 out before

  • Mitch Haniger vs Javier Assad3-0

    Mitch Haniger strikes out swinging.

    3-3, 9 pitches · 1 out before

  • Jorge Polanco vs Javier Assad3-2

    Jorge Polanco homers (2) on a fly ball to right center field. J.P. Crawford scores.

    1-0, 2 pitches · 2 outs before

  • Ty France vs Yency Almonte3-2

    Ty France strikes out swinging.

    3-3, 6 pitches · 2 outs before

top 7th(3)
  • Nico Hoerner vs Brett de Geus3-2

    Nico Hoerner singles on a line drive to right fielder Mitch Haniger.

    1-2, 4 pitches · 0 outs before

  • Mike Tauchman vs Brett de Geus3-2

    Mike Tauchman strikes out swinging.

    3-3, 7 pitches · 0 outs before

  • Yan Gomes vs Brett de Geus3-2

    Yan Gomes grounds out, second baseman Jorge Polanco to first baseman Ty France.

    1-1, 3 pitches · 2 outs before

bottom 7th(4)
  • Dylan Moore vs Yency Almonte3-2

    Dylan Moore hit by pitch.

    4-2, 6 pitches · 0 outs before

  • Mitch Garver vs Yency Almonte3-2

    Mitch Garver walks. Dylan Moore to 2nd.

    4-0, 4 pitches · 0 outs before

  • Cal Raleigh vs Mark Leiter Jr.3-2

    Cal Raleigh flies out sharply to center fielder Cody Bellinger. Dylan Moore to 3rd.

    0-0, 1 pitch · 0 outs before

  • Luke Raley vs Mark Leiter Jr.3-2

    Luke Raley grounds into a double play, second baseman Nico Hoerner to shortstop Dansby Swanson to first baseman Michael Busch. Mitch Garver out at 2nd. Luke Raley out at 1st.

    0-0, 1 pitch · 1 out before

top 8th(3)
  • Ian Happ vs Gabe Speier3-2

    Ian Happ grounds out, third baseman Josh Rojas to first baseman Ty France.

    2-2, 5 pitches · 0 outs before

  • Seiya Suzuki vs Gabe Speier3-2

    Seiya Suzuki grounds out, third baseman Josh Rojas to first baseman Ty France.

    1-1, 3 pitches · 1 out before

  • Cody Bellinger vs Gabe Speier3-2

    Cody Bellinger flies out to left fielder Dylan Moore.

    2-2, 6 pitches · 2 outs before

bottom 8th(5)
  • Josh Rojas vs Héctor Neris3-2

    Josh Rojas walks.

    4-1, 5 pitches · 0 outs before

  • J.P. Crawford vs Héctor Neris3-2

    J.P. Crawford walks. Josh Rojas to 2nd.

    4-1, 5 pitches · 0 outs before

  • Mitch Haniger vs Héctor Neris3-2

    Mitch Haniger strikes out swinging.

    1-3, 8 pitches · 0 outs before

  • Jorge Polanco vs Héctor Neris3-2

    Jorge Polanco walks. Josh Rojas to 3rd. J.P. Crawford to 2nd.

    4-1, 5 pitches · 1 out before

  • Ty France vs Héctor Neris3-2

    Ty France grounds into a double play, shortstop Dansby Swanson to first baseman Michael Busch. Jorge Polanco out at 2nd. Ty France out at 1st.

    2-2, 5 pitches · 1 out before

top 9th(3)
  • Christopher Morel vs Trent Thornton3-2

    Christopher Morel strikes out swinging.

    1-3, 4 pitches · 0 outs before

  • Dansby Swanson vs Trent Thornton3-2

    Dansby Swanson flies out to center fielder Luke Raley.

    0-0, 1 pitch · 1 out before

  • Michael Busch vs Trent Thornton3-2

    Michael Busch called out on strikes.

    2-3, 5 pitches · 2 outs before

bottom 9th(4)
  • Dylan Moore vs Adbert Alzolay3-2

    Dylan Moore strikes out swinging.

    1-3, 5 pitches · 0 outs before

  • Mitch Garver vs Adbert Alzolay3-2

    Mitch Garver strikes out swinging.

    0-3, 3 pitches · 1 out before

  • Cal Raleigh vs Adbert Alzolay3-2

    Cal Raleigh singles on a ground ball to right fielder Mike Tauchman.

    3-2, 6 pitches · 2 outs before

  • Luke Raley vs Adbert Alzolay3-2

    Cubs challenged (tag play), call on the field was overturned: pitcher Adbert Alzolay picks off Julio Rodríguez at on throw to first baseman Michael Busch.

    1-1, 2 pitches · 2 outs before

Analysis preview// illustrative example, not this page's real data
sample · team comparisonexample only
a:"Team A"b:"Team B"
Offensive ratingA 114.2 · B 108.9
Recent form (L10)A 6-4 · B 6-4
Head-to-headB leads 3-1
GET /v1/analysis/compare-teams?a=…&b=…Run this yourself via the API
Built on the StatHawk API

The page is the demo.

These requests and request patterns show how this page gets data from the same REST API and MCP server you can use in your own app or agent.

View this page's API recipe

Use the authenticated requests or fill in the labeled request templates, then adapt the response in your own product.

Authenticated request · GET /v1/contests/cst_06fhqd2ynnzy77jfp7ya6b3mq4
curl "https://api.statshawk.ai/v1/contests/cst_06fhqd2ynnzy77jfp7ya6b3mq4" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06fhqd2ynnzy77jfp7ya6b3mq4/boxscore
curl "https://api.statshawk.ai/v1/contests/cst_06fhqd2ynnzy77jfp7ya6b3mq4/boxscore" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06fhqd2ynnzy77jfp7ya6b3mq4/matchup
curl "https://api.statshawk.ai/v1/contests/cst_06fhqd2ynnzy77jfp7ya6b3mq4/matchup" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06fhqd2ynnzy77jfp7ya6b3mq4/play-by-play?detail=full
curl "https://api.statshawk.ai/v1/contests/cst_06fhqd2ynnzy77jfp7ya6b3mq4/play-by-play?detail=full" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Try with MCP

Connect StatHawk to your agent, then ask it to explain and extend the data shown on this page.

Build this view in the API reference
$claude mcp add statshawk https://mcp.statshawk.ai/mcp