Tennis — Live Scores, ATP, WTA & Grand Slams

All
Live
Upcoming
Results
.sp-live-container { font-family: -apple-system, BlinkMacSystemFont, ‘Inter’, ‘Segoe UI’, sans-serif; max-width: 1200px; margin: 0 auto; } .sp-tournament-nav { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 8px; margin-bottom: 16px; padding: 10px 0; border-bottom: 1px solid #2a2d35; scrollbar-width: none; -ms-overflow-style: none; } .sp-sticky-nav { position: sticky; top: 0; z-index: 50; background: #0f172a; padding: 8px 0; margin-bottom: 12px; } .sp-card-hidden { display: none !important; } .sp-show-all-btn { display: block; width: 100%; text-align: center; padding: 8px; background: #1e2028; border: 1px solid #2a2d35; border-radius: 8px; color: #60a5fa; font-size: 12px; font-weight: 600; cursor: pointer; margin-bottom: 12px; } .sp-show-all-btn:hover { background: #252830; } .sp-tournament-nav::-webkit-scrollbar { display: none; } .sp-tournament-btn { padding: 6px 14px; border-radius: 20px; font-size: 12px; font-weight: 600; cursor: pointer; border: 2px solid #3a3d45; background: transparent; color: #cbd5e1; transition: all 0.2s; text-decoration: none; display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; flex-shrink: 0; } .sp-tournament-btn:hover, .sp-tournament-btn.active { background: var(–btn-color, #4a90d9); border-color: var(–btn-color, #4a90d9); color: #fff; } .sp-tournament-btn .sp-live-dot { width: 8px; height: 8px; border-radius: 50%; background: #ef4444; animation: sp-pulse 1.5s infinite; } @keyframes sp-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } } .sp-section-label { font-size: 12px; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: 1px; margin: 16px 0 8px !important; padding-bottom: 6px; border-bottom: 1px solid #2a2d35; display: flex; align-items: center; gap: 8px; } .sp-section-label .sp-league-badge { padding: 2px 8px; border-radius: 12px; font-size: 10px; color: #fff; } .sp-tournament-header { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; margin-bottom: 8px !important; border-left: 3px solid var(–accent, #3b82f6); padding-left: 10px; } .sp-tournament-name { font-size: 13px; font-weight: 700; color: #e2e8f0; } .sp-tournament-count { font-size: 11px; color: #64748b; } .sp-tournament-group { margin-bottom: 16px !important; } .sp-matches-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; margin-bottom: 16px !important; } .sp-match-card { background: #1e2028; border: 1px solid #2a2d35; border-radius: 12px; overflow: hidden; transition: all 0.2s; cursor: pointer; text-decoration: none; color: inherit; display: block; } .sp-match-card:hover { border-color: #4a90d9; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.3); } .sp-match-card div, .sp-match-card p { margin: 0 !important; } .sp-match-card-header { padding: 7px 12px !important; display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: #64748b; border-bottom: 1px solid #2a2d35; gap: 6px; } .sp-match-card-header .sp-league-tag { padding: 2px 7px; border-radius: 10px; font-weight: 600; color: #fff; font-size: 10px; flex-shrink: 0; } .sp-hdr-info { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: center; } .sp-match-status { font-weight: 600; flex-shrink: 0; white-space: nowrap; } .sp-match-status.live { color: #ef4444; } .sp-match-status.upcoming { color: #3b82f6; } .sp-match-status.result { color: #22c55e; } .sp-match-card-body { padding: 8px 12px !important; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 4px; } .sp-match-card[data-state=”post”] .sp-match-card-body, .sp-match-card[data-state=”in”] .sp-match-card-body { grid-template-columns: 1fr 1fr; } .sp-team-row { display: flex; align-items: center; gap: 6px; padding: 0 !important; margin: 0 !important; min-height: 0; } .sp-match-card-body .sp-team-row:last-of-type { flex-direction: row-reverse; } .sp-team-logo { width: 26px; height: 26px; border-radius: 5px; object-fit: contain; background: #fff; flex-shrink: 0; } .sp-team-logo.flag { border-radius: 3px; width: 24px; height: 16px; background: transparent; } .sp-logo-ph { width: 26px; height: 26px; border-radius: 5px; background: #2a2d35; display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 700; color: #64748b; flex-shrink: 0; } .sp-team-info { flex: 1; display: flex; flex-direction: column; gap: 1px; min-width: 0; } .sp-team-name { font-size: 13px; font-weight: 600; color: #e2e8f0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 1.3; } .sp-team-name.winner { color: #22c55e; } .sp-team-score { font-size: 14px; font-weight: 700; color: #f1f5f9; min-width: 40px; text-align: right; flex-shrink: 0; } .sp-team-score.winner { color: #22c55e; } .sp-score-col { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; flex-shrink: 0; max-width: 110px; } .sp-cricket-ov { font-size: 9px; color: #94a3b8; text-align: right; line-height: 1.2; word-break: break-word; } .sp-form { display: flex; gap: 3px; } .sp-fd { width: 18px; height: 18px; border-radius: 50%; font-size: 9px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; } .sp-fw { background: #22c55e; color: #fff; } .sp-fdraw { background: #f59e0b; color: #fff; } .sp-fl { background: #ef4444; color: #fff; } .sp-record { font-size: 11px; color: #64748b; } .sp-sets-grid { margin: 8px 0 4px; padding: 8px 12px; background: #161820; border-radius: 8px; } .sp-sets-hdr { display: flex; align-items: center; gap: 0; margin-bottom: 4px; } .sp-sh { width: 30px; text-align: center; font-size: 10px; font-weight: 600; color: #475569; text-transform: uppercase; } .sp-sets-row { display: flex; align-items: center; gap: 0; } .sp-sn { width: 80px; font-size: 12px; font-weight: 600; color: #94a3b8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .sp-sn.winner { color: #22c55e; } .sp-ss { width: 30px; text-align: center; font-size: 14px; font-weight: 600; padding: 2px 0; } .sp-sw { color: #e2e8f0; } .sp-sl { color: #475569; } .sp-note { padding: 3px 12px !important; font-size: 11px; color: #94a3b8; text-align: center; font-style: italic; border-top: 1px solid #2a2d35; margin: 0 !important; } .sp-note-live { color: #fbbf24; font-style: normal; font-weight: 600; background: rgba(251,191,36,0.06); } .sp-events { padding: 3px 12px !important; font-size: 11px; color: #94a3b8; border-top: 1px solid #2a2d35; line-height: 1.4; margin: 0 !important; } .sp-match-card-footer { padding: 6px 12px !important; font-size: 11px; color: #94a3b8; border-top: 1px solid #2a2d35; display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 0 !important; } .sp-footer-col { display: flex; flex-direction: column; gap: 1px; min-width: 0; } .sp-match-venue { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; } .sp-match-date { font-size: 10px; color: #64748b; } .sp-cta { font-size: 11px; color: #60a5fa; font-weight: 600; white-space: nowrap; } .sp-match-result { font-size: 11px; color: #94a3b8; padding: 3px 12px !important; text-align: center; font-style: italic; margin: 0 !important; } .sp-match-vs { text-align: center; padding: 0 4px !important; color: #475569; font-size: 11px; font-weight: 700; white-space: nowrap; margin: 0 !important; } .sp-no-matches { text-align: center; padding: 40px 20px; color: #64748b; font-size: 15px; } .sp-detail-link { display: inline-flex; align-items: center; gap: 4px; color: #60a5fa; font-size: 12px; text-decoration: none; } .sp-detail-link:hover { text-decoration: underline; } .sp-innings-card { margin: 16px 0; background: #1a1c24; border-radius: 10px; overflow: hidden; border: 1px solid #2a2d35; } .sp-innings-header { padding: 10px 14px; background: #252830; display: flex; justify-content: space-between; align-items: center; } .sp-innings-team { font-weight: 700; color: #e2e8f0; font-size: 14px; } .sp-innings-total { font-weight: 700; color: #60a5fa; font-size: 15px; } .sp-scorecard-table { width: 100%; border-collapse: collapse; font-size: 13px; } .sp-scorecard-table th { padding: 8px 10px; text-align: left; color: #64748b; font-weight: 600; font-size: 11px; text-transform: uppercase; border-bottom: 1px solid #2a2d35; } .sp-scorecard-table td { padding: 7px 10px; border-bottom: 1px solid #1e2028; color: #cbd5e1; } .sp-scorecard-table tr.sp-not-out td { color: #22c55e; } .sp-scorecard-table tr.sp-wicket-highlight td { color: #fbbf24; } .sp-player-name { font-weight: 500; min-width: 120px; } .sp-dismissal { color: #94a3b8; font-size: 12px; max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .sp-extras-row { padding: 8px 14px; font-size: 12px; color: #94a3b8; border-top: 1px solid #2a2d35; } .sp-bowling-card { margin-top: -1px; } .sp-last-updated { text-align: center; padding: 10px; color: #475569; font-size: 11px; margin-top: 20px; } .sp-quick-links-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 8px; } .sp-qlink { display: flex; align-items: center; gap: 6px; padding: 10px 12px; background: #1e2028; border: 1px solid #2a2d35; border-left: 3px solid var(–qc, #3b82f6); border-radius: 8px; font-size: 12px; font-weight: 600; color: #cbd5e1; text-decoration: none; transition: all 0.2s; } .sp-qlink:hover { background: #252830; color: #fff; border-color: var(–qc, #3b82f6); } .sp-trending-pills { display: flex; flex-wrap: wrap; gap: 8px; } .sp-player-pill { padding: 6px 14px; background: #1e2028; border: 1px solid #2a2d35; border-radius: 20px; font-size: 12px; color: #94a3b8; text-decoration: none; transition: all 0.2s; } .sp-player-pill:hover { background: #252830; border-color: #3b82f6; color: #60a5fa; } @media (max-width: 600px) { .sp-quick-links-grid { grid-template-columns: repeat(2, 1fr); } } .sp-view-all-btn { display: inline-block; padding: 10px 24px; background: #3b82f6; color: #fff; border-radius: 8px; font-weight: 600; text-decoration: none; margin: 10px 0; font-size: 14px; } .sp-view-all-btn:hover { background: #2563eb; } .sp-result-banner { text-align: center; padding: 14px 20px; background: linear-gradient(135deg, #065f46 0%, #047857 100%); border-radius: 10px; font-size: 16px; font-weight: 700; color: #ecfdf5; margin-bottom: 16px; letter-spacing: 0.3px; } .sp-match-info-box { background: #1a1c24; border: 1px solid #2a2d35; border-radius: 10px; padding: 14px 18px; margin-bottom: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; } .sp-info-item { display: flex; flex-direction: column; gap: 3px; } .sp-info-label { font-size: 10px; font-weight: 600; color: #64748b; text-transform: uppercase; letter-spacing: 0.5px; } .sp-info-value { font-size: 13px; color: #cbd5e1; font-weight: 500; } .sp-info-value.sp-motm { color: #fbbf24; font-weight: 700; } .sp-col-name { min-width: 100px; } .sp-col-how { min-width: 80px; max-width: 140px; } .sp-sr { color: #64748b; font-size: 12px; } .sp-detail-header { background: #1e2028; border: 1px solid #2a2d35; border-radius: 12px; padding: 20px; margin-bottom: 20px; } .sp-detail-team-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; } .sp-detail-team-name { flex: 1; font-size: 18px; font-weight: 600; color: #e2e8f0; } .sp-detail-team-name.winner { color: #22c55e; } .sp-detail-score { font-size: 18px; font-weight: 700; color: #f1f5f9; text-align: right; } .sp-detail-score.winner { color: #22c55e; } .sp-detail-status { text-align: center; padding-top: 10px; color: #94a3b8; font-size: 14px; font-style: italic; } @media (max-width: 768px) { .sp-matches-grid { grid-template-columns: 1fr; } .sp-tournament-nav { gap: 6px; } .sp-tournament-btn { padding: 6px 12px; font-size: 12px; } .sp-scorecard-table { font-size: 11px; } .sp-scorecard-table th, .sp-scorecard-table td { padding: 5px 4px; } .sp-scorecard-table th { font-size: 10px; } .sp-player-name { min-width: 80px; font-size: 12px; } .sp-dismissal { font-size: 10px; max-width: 90px; } .sp-col-how { min-width: 60px; max-width: 90px; } .sp-innings-card + .sp-innings-card { margin-top: 12px; } div[style*=”grid-template-columns:1fr 1fr”] { grid-template-columns: 1fr !important; } .sp-fd { width: 16px; height: 16px; font-size: 8px; } .sp-sets-grid { padding: 6px 8px; } .sp-ss { width: 26px; font-size: 13px; } .sp-sn { width: 70px; font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .sp-sh { width: 26px; font-size: 9px; } .sp-team-logo { width: 28px; height: 28px; } .sp-logo-ph { width: 28px; height: 28px; font-size: 9px; } .sp-hdr-info { font-size: 10px; } .sp-result-banner { font-size: 14px; padding: 10px 14px; } .sp-match-info-box { grid-template-columns: 1fr; gap: 8px; padding: 10px 14px; } .sp-detail-team-name { font-size: 15px; } .sp-detail-score { font-size: 15px; } }
ATP Tour16 matches
ATP Gonet Geneva Open · Round 1 01:30 PM PKT
A. Alex Michelsen
S. Sebastian Baez
ATP Gonet Geneva Open · Round 1 03:00 PM PKT
T. Thiago Agustin Tirante
A. Arthur Rinderknech
ATP Gonet Geneva Open · Round 1 03:30 PM PKT
F. Francisco Comesana
V. Valentin Royer
ATP Gonet Geneva Open · Round 1 04:30 PM PKT
G. Giovanni Mpetshi Perricard
S. Stefanos Tsitsipas
ATP Gonet Geneva Open · Round 1 09:00 PM PKT
S. Stan Wawrinka
R. Raul Brancaccio
ATP Gonet Geneva Open · Round 1 10:30 PM PKT
E. Edas Butvilas
L. Lorenzo Sonego
ATP Gonet Geneva Open · Round 1 09:00 AM PKT
C. Casper Ruud
J. Jenson Brooksby
ATP Gonet Geneva Open · Round 2 09:00 AM PKT
M. Mariano Navone
C. Cameron Norrie
ATP Bitpanda Hamburg Open · Round 1 03:00 PM PKT
C. Camilo Ugo Carabelli
K. Kamil Majchrzak
ATP Bitpanda Hamburg Open · Round 1 03:00 PM PKT
A. Alex de Minaur
F. Francisco Cerundolo
ATP Bitpanda Hamburg Open · Round 1 03:00 PM PKT
C. Corentin Moutet
A. Alejandro Davidovich Fokina
ATP Bitpanda Hamburg Open · Round 1 04:30 PM PKT
M. Max Schoenhaus
Y. Yannick Hanfmann
ATP Bitpanda Hamburg Open · Round 1 04:30 PM PKT
T. Tomas Martin Etcheverry
T. Terence Atmane
ATP Bitpanda Hamburg Open · Round 1 06:00 PM PKT
B. Ben Shelton
M. Marcos Giron
ATP Bitpanda Hamburg Open · Round 1 06:00 PM PKT
R. Rinky Hijikata
D. Daniel Altmaier
ATP Bitpanda Hamburg Open · Round 1 09:00 PM PKT
J. Jan-Lennard Struff
J. Jakub Mensik
WTA Tour16 matches
WTA Grand Prix Son Altesse Royale La Princesse Lalla Meryem · Round 1 03:00 PM PKT
A. Anhelina Kalinina
S. Simona Waltert
WTA Grand Prix Son Altesse Royale La Princesse Lalla Meryem · Round 1 03:00 PM PKT
J. Julia Grabher
J. Jil Teichmann
WTA Grand Prix Son Altesse Royale La Princesse Lalla Meryem · Round 1 03:00 PM PKT
P. Panna Udvardy
H. Hanne Vandewinkel
WTA Grand Prix Son Altesse Royale La Princesse Lalla Meryem · Round 1 04:00 PM PKT
V. Vera Zvonareva
P. Petra Marcinko
WTA Grand Prix Son Altesse Royale La Princesse Lalla Meryem · Round 1 04:00 PM PKT
M. Moyuka Uchijima
A. Alycia Parks
WTA Grand Prix Son Altesse Royale La Princesse Lalla Meryem · Round 1 04:00 PM PKT
D. Danka Kovinic
F. Fiona Ferro
WTA Grand Prix Son Altesse Royale La Princesse Lalla Meryem · Round 1 05:30 PM PKT
A. Anna Bondar
P. Polona Hercog
WTA Grand Prix Son Altesse Royale La Princesse Lalla Meryem · Round 1 09:00 AM PKT
A. Angela Fita Boluda
Y. Yuliia Starodubtseva
WTA Grand Prix Son Altesse Royale La Princesse Lalla Meryem · Round 1 09:00 AM PKT
J. Jessica Bouzas Maneiro
L. Lisa Zaar
WTA Grand Prix Son Altesse Royale La Princesse Lalla Meryem · Round 1 09:00 AM PKT
Y. Yelyzaveta Kotliar
F. Francesca Jones
WTA Internationaux de Strasbourg presented by Mammotion · Round 1 01:30 PM PKT
L. Liudmila Samsonova
D. Daria Kasatkina
WTA Internationaux de Strasbourg presented by Mammotion · Round 1 01:30 PM PKT
T. Talia Gibson
M. Magdalena Frech
WTA Internationaux de Strasbourg presented by Mammotion · Round 1 03:00 PM PKT
J. Jaqueline Cristian
M. McCartney Kessler
WTA Internationaux de Strasbourg presented by Mammotion · Round 1 04:30 PM PKT
O. Oleksandra Oliynykova
A. Alexandra Eala
WTA Internationaux de Strasbourg presented by Mammotion · Round 1 08:30 PM PKT
K. Katerina Siniakova
M. Marie Bouzkova
WTA Internationaux de Strasbourg presented by Mammotion · Round 2 09:00 AM PKT
E. Ekaterina Alexandrova
A. Ann Li

Tennis Coverage

Follow ATP and WTA tours, Grand Slams, rankings and live match scores. From Roland Garros to Wimbledon — your complete tennis destination.

Niels McDonald vs Ignacio Buse

Bitpanda Hamburg Open — Qualifying 1st Round

Set Scores
PlayerSet 1Set 2Result
Niels McDonald20L
Ignacio Buse66W

Sumit Nagal vs Marcos Giron

Bitpanda Hamburg Open — Qualifying 1st Round

Set Scores
PlayerSet 1Set 2Result
Sumit Nagal32L
Marcos Giron66W

Taro Daniel vs Rinky Hijikata

Bitpanda Hamburg Open — Qualifying 1st Round

Set Scores
PlayerSet 1Set 2Set 3Result
Taro Daniel3772L
Rinky Hijikata6636W
Last updated: May 18, 2026 01:45 AM PKT · Data from ESPN