James Maddison scored his first Tottenham goal and delivered an outstanding individual performance as Spurs continued their fine start to life under Ange Postecoglou with victory at Bournemouth.
Maddison's opener came at the end of a flowing Spurs move involving Yves Bissouma and Pape Sarr, and arrived just moments after Cherries goalkeeper Neto had kept out another effort from the 26-year-old.
Spurs carved out the better opportunities before half-time but Richarlison - who endured a frustrating afternoon - was unable to open his tally for the season despite finding himself in some excellent goalscoring positions.
Bournemouth made a bright start to the second half and Antoine Semenyo nearly followed up his goal at Anfield last weekend with a superb second-half equaliser, but the Ghanaian's curling effort from the edge of the box flew narrowly wide of the top corner.
Young full-back Destiny Udogie was the architect of the visitors' second, playing an excellent one-two with Heung-min Son before cutting the ball back for Dejan Kulusevski, who found the far corner for his first of the campaign.
Spurs have seven points from their opening three league games, while Bournemouth's wait for a first win of the season goes on after slipping to a second straight defeat.
Maddison sensational for Spurs
To say Maddison has hit the ground running at Tottenham would be doing the former Leicester man a great disservice.
The England international followed up his two assists in the opening-day draw at Brentford with another influential display in victory over Manchester United, and he was superb once again on the south coast as Spurs continued their unbeaten start.
Often dropping deep to collect possession, Maddison was at the heart of the visitors' best attacking moves and could have scored seconds before his right-footed opener, but Neto - whose hasty clearance had gifted Spurs possession - atoned for his error.
Richarlison spurned two good chances to double Tottenham's lead - both from superb Maddison balls - the Brazilian dallying long enough to give Bournemouth time to clear before sending a close-range header into the side-netting.
That first opening in particular summed up a disappointing afternoon for the former Everton player, who lost the ball cheaply on several occasions before being replaced by Pierre-Emile Hojbjerg on the hour mark.
Udogie, a £15m summer signing from Udinese, took a leaf out of Maddison's book for Tottenham's second, linking up wonderfully with Son before darting to the byline and pulling the ball back for Kulusevski.
Maddison missed a late chance to add a third for Spurs but it mattered little on a comfortable afternoon for Postecoglou's team, whose fans were singing "we've got our Tottenham back" moments before the full-time whistle.
Cherries second best
Midfielder Tyler Adams - a recent signing from relegated Leeds - was introduced to the Vitality Stadium crowd before kick-off on Saturday afternoon.
The USA international remains sidelined with a longstanding hamstring issue, but Andoni Iraola's side could have done with his presence in the first half as Maddison ran the show.
Despite struggling to contain the 26-year-old before the interval, the Cherries very nearly ended the half on level terms after Philip Billing sent a curling, left-footed strike narrowly wide of the far post.
Ryan Christie also tested Tottenham goalkeeper Guglielmo Vicario's reflexes with a stinging drive from the corner of the area, before Semenyo's excellent effort just missed the angle between bar and post.
Iraola will be frustrated at the manner of the visitors' second, with several of his defenders guilty of ball-watching as Udogie worked his way to the byline and crossed for Kulusevski.
Bournemouth have shown glimpses of promise under Iraola but victory continues to elude the Cherries, whose start to the campaign is not about to get any easier.
They travel to Brentford in their next league game before taking on Chelsea (h), Brighton (a) and Arsenal (h) later in September.
Player of the match
MaddisonJames Maddison
AFC Bournemouth
Squad number9Player nameSolanke
Squad number24Player nameSemenyo
Squad number10Player nameChristie
Squad number1Player nameNeto
Squad number19Player nameKluivert
Squad number3Player nameKerkez
Squad number29Player nameBilling
Squad number37Player nameAarons
Squad number27Player nameZabarnyi
Squad number5Player nameKelly
Squad number8Player nameRothwell
Squad number7Player nameBrooks
Squad number4Player nameL Cook
Squad number32Player nameAnthony
Squad number22Player nameTraorè
Squad number21Player nameMoore
Line-ups
Bournemouth
Formation 4-2-3-1
1Neto
37Aarons27Zabarnyi5Kelly3Kerkez
10Christie8Rothwell
24Semenyo29Billing19Kluivert
9Solanke
1Neto37Aarons27Zabarnyi5KellyBooked at 45mins3Kerkez10ChristieSubstituted forTraorèat 60'minutes8RothwellSubstituted forL Cookat 45'minutes24SemenyoSubstituted forBrooksat 73'minutes29BillingSubstituted forMooreat 86'minutes19KluivertSubstituted forAnthonyat 60'minutes9SolankeSubstitutes
4L Cook6Mepham7Brooks20Radu21Moore22Traorè23Hill25Senesi32AnthonyTottenham
Formation 4-2-3-1
13Vicario
23Porro17Romero37van de Ven38Udogie
29Sarr8Bissouma
21Kulusevski10Maddison7Son Heung-min
9Richarlison
13Vicario23Porro17Romero37van de Ven38UdogieSubstituted forDaviesat 82'minutes29SarrSubstituted forPerisicat 59'minutesBooked at 71mins8BissoumaBooked at 53minsSubstituted forLo Celsoat 74'minutes21Kulusevski10MaddisonSubstituted forSkippat 73'minutes7Son Heung-min9RicharlisonBooked at 54minsSubstituted forHøjbjergat 60'minutesSubstitutes
4Skipp5Højbjerg6D Sánchez12Emerson Royal14Perisic18Lo Celso20Forster27Solomon33DaviesReferee:Tim RobinsonAttendance:10,567Live Text
Match ends, Bournemouth 0, Tottenham Hotspur 2.
Second Half ends, Bournemouth 0, Tottenham Hotspur 2.
Attempt missed. Jaidon Anthony (Bournemouth) right footed shot from outside the box is too high. Assisted by Dominic Solanke.
Attempt missed. Ivan Perisic (Tottenham Hotspur) left footed shot from the left side of the box misses to the right. Assisted by Son Heung-Min.
Attempt missed. Ben Davies (Tottenham Hotspur) left footed shot from the centre of the box is just a bit too high. Assisted by Son Heung-Min.
Giovani Lo Celso (Tottenham Hotspur) wins a free kick in the attacking half.
Foul by David Brooks (Bournemouth).
Dejan Kulusevski (Tottenham Hotspur) wins a free kick in the defensive half.
Foul by Jaidon Anthony (Bournemouth).
Attempt missed. Pedro Porro (Tottenham Hotspur) right footed shot from outside the box misses to the left following a set piece situation.
Attempt blocked. Pedro Porro (Tottenham Hotspur) right footed shot from outside the box is blocked.
Son Heung-Min (Tottenham Hotspur) wins a free kick in the attacking half.
Foul by Illia Zabarnyi (Bournemouth).
Foul by Dejan Kulusevski (Tottenham Hotspur).
Milos Kerkez (Bournemouth) wins a free kick on the left wing.
Attempt missed. Dominic Solanke (Bournemouth) header from the centre of the box misses to the left. Assisted by Max Aarons with a cross.
Substitution, Bournemouth. Kieffer Moore replaces Philip Billing.
Attempt missed. Son Heung-Min (Tottenham Hotspur) left footed shot from outside the box is high and wide to the left. Assisted by Giovani Lo Celso.
Attempt missed. Lewis Cook (Bournemouth) right footed shot from outside the box misses to the left following a corner.
Corner, Bournemouth. Conceded by Pierre-Emile Højbjerg.