Substitute Jon Walters scored a late penalty as Stoke came from behind to beat Besiktas.
The Turkish side opened the scoring in the 14th minute when Roberto Hilbert ran on to Ricardo Quaresma's fine through ball to score.
But Peter Crouch equalised a minute later when he stabbed in from close range after a corner was not cleared.
Substitute Walters had already hit the post when he netted from the spot with 12 minutes remaining.
After drawing their first game in Kiev the Potters are now top of Europa League Group E ahead of back-to-back games with Maccabi Tel-Aviv.
Did You know?
Peter Crouch has now scored five goals in seven Europa League games
Manager Tony Pulis had complained before the game that
his side needed help
after being handed away Premier League games after each Europa League match.
As a result Pulis made seven changes from the side which drew
1-1 with Manchester United
last weekend, with only Crouch, Rory Delap, Ryan Shawcross and Matthew Etherington remaining in the starting XI.
But he still saw his side produce a rousing display which owed much to their lauded prowess from set-pieces, despite Uefa regulations meaning the pitch had to be widened and, in the process, the run-up area for Delap's long throws reduced.
Former Turkey goalkeeper Rustu Recber flapped at his first Delap throw but was given a soft free-kick by referee Antony Gautier.
Delap headed a Dean Whitehead corner narrowly wide before Besiktas took the lead through Hilbert. Quaresma split the defence with a magnificent through ball and Hilbert flicked the ball first-time around Thomas Sorensen despite Robert Huth's desperate challenge.
Stoke needed a response and took less than two minutes to level through Crouch.
Rustu failed to collect a Whitehead corner, Shawcross saw his effort blocked and Crouch was on hand to bundle over the line from three yards out.
For Crouch - sent off for Tottenham in the quarter-finals of the Champions League against Real Madrid in his last European appearance - it was a 27th European goal in 51 appearances.
A free-kick from Matthew Etherington caused more confusion on the stroke of half-time but Mehmet Aurelio was able to hook the ball clear with Cameron Jerome poised to strike.
Matthew Upson was fortunate to avoid conceding a penalty when a corner struck him on the arm before Walters almost scored with his first touch when Rustu managed to turn his shot on to the frame of the goal.
Qauresma then nearly scored a fluke second when his shot deflected off Huth and span on to the post before Delap fired over from a tight angle.
The Potters were awarded a penalty with 12 minutes left and there was no surprise it came from a corner.
Pennant's delivery was headed goalwards by Upson and Tomas Sivok pulled down Crouch inside the six-yard box. Walters stepped up and smashed the spot-kick high into the net to secure the victory.
Stoke manager Tony Pulis:
"They are a very, very good side - I said it before the game.
"They have some good players, and some of them that played today had been rested on Sunday. We think they are a massive danger in this group, so we are very pleased with the result.
"I thought in the first half they played very well, outnumbered us in midfield and moved the ball very quickly. At times we were chasing the ball.
"But in the second half we made some changes, pushed on a bit and caused them a few more problems. On another day we could have scored three or four goals."
Besiktas coach Carlos Carvalhal:
"Stoke won, but they were not the best team on the field - in my opinion, that was my team.
"If you give a penalty in that situation, in these matches there will be 10 or 20 penalties, because players come together all the time.
"The officials also didn't see a handball in the area, and we are not comfortable with this."
- 29 Sorensen
- 04 Huth
- 17 Shawcross
- 20 Upson Booked
- 30 Shotton
- 18 Whitehead
- 24 Delap
- 26 Etherington (Pennant - 51' )
- 40 Palacios (Whelan - 60' Booked )
- 25 Crouch
- 33 Jerome (Walters - 59' )
- 27 Nash
- 28 Wilkinson
- 06 Whelan
- 12 Wilson
- 16 Pennant
- 32 Arismendi
- 19 Walters
- 01 Rustu
- 03 Koybasi
- 06 Sivok Booked
- 55 Korkmaz
- 04 Fernandes
- 07 Quaresma
- 13 Hilbert
- 15 Aurelio (Holosko - 82' )
- 18 Uysal (Ernst - 75' )
- 20 Simao
- 33 Edu
- 99 Gonen
- 27 Sidnei
- 08 Kavlak
- 17 Ekrem Dag
- 28 Ernst
- 11 Pektemek
- 23 Holosko