The tourists were dismissed for 336 at tea, 230 runs adrift of England's first innings 566 for nine declared, but were not asked to follow-on by Michael Vaughan.
England spinner Giles, who took nine wickets in the first test win at Lord's, grabbed four for 65 as West Indies lost their last five wickets for just 13 runs.
In reply, England reached 148 for three at stumps, a lead of 378 runs, with paceman Lawson taking all three wickets for 20 runs.
Marcus Trescothick was 88 not out to accompany a hundred in the first innings with Graham Thorpe also there on 28, although both players were dropped before the close.
Andrew Strauss (5) edged a wide ball behind in a carbon copy of his dismissal in the first innings with Robert Key and Vaughan also failing to make double figures.
The England captain had earlier chosen not to make West Indies bat again in the belief the pitch will have deteriorated by the time they bat last.
Andrew Flintoff, who smashed 167 in England's first innings, also impressed with the ball and in the field, taking two for 52 as well as a sharp catch at short leg to dismiss Pedro Collins off Giles.
Matthew Hoggard contributed with three wickets but England's main strike bowler Steve Harmison again had to be content with just one dismissal.
Ramnaresh Sarwan completed his century in the first session after being 87 overnight but was out after lunch for 139, dragging a wide Flintoff ball on to his stumps.
Dwayne Bravo was bowled by an excellent Giles ball that pitched outside leg and went on to hit off stump.
Giles then finally removed Shivnarine Chanderpaul for 45 when the ball struck his pads and flicked his gloves on its way to Key at silly mid off.
Chanderpaul, who was dropped by Vaughan at short mid on, had scored 128 not out and an unbeaten 97 in the first Test at Lord's.
West Indies resumed day three on 184 for two but Brian Lara fell five short of his century in the 10th over of the morning when he edged a loose drive to Thorpe at a wide slip in Flintoff's first over.
Thorpe's catch atoned for an earlier spill at gully off the impressive but wicketless James Anderson when Sarwan was on 92.
England first innings 566-9 declared (A.Flintoff 167, M.Trescothick 105, G.Jones 74, G.Thorpe 61)
West Indies first innings (overnight 184-2)
C.Gayle b Hoggard 7
D.Smith c Giles b Hoggard 4
R.Sarwan b Flintoff 139
B.Lara c Thorpe b Flintoff 95
S.Chanderpaul c Key b Giles 45
D.Bravo b Giles 13
R.Jacobs c Trescothick b Hoggard 0
O.Banks c Jones b Harmison 4
P.Collins c Flintoff b Giles 6
C.Collymore lbw b Giles 2
J.Lawson not out 0
Extras (b-9, lb-5, w-1, nb-6) 21
Total (all out, 91.3 overs) 336
Fall of wickets: 1-5 2-12 3-221 4-297 5-323 6-324 7-324 8-334 9-336
Bowling: Hoggard 18-0-89-3 (nb-2), Harmison 14-1-64-1, Anderson 11-3-37-0 (w-1), Giles 30.3-7-65-4, Flintoff 15-1-52-2 (nb-3), Vaughan 1-0-8-0 (nb-1), Trescothick 2-0-7-0
England second innings
M.Trescothick not out 88
A.Strauss c Jacobs b Lawson 5
R.Key c Gayle b Lawson 4
M.Vaughan c Gayle b Lawson 3
G.Thorpe not out 28
Extras (b-8, lb-2, w-5, nb-5) 20
Total (for three wickets, 38 overs) 148
Fall of wickets: 1-24 2-37 3-52
To Bat: A.Flintoff, G.Jones, A.Giles, M.Hoggard, J.Anderson, S.Harmison
Bowling: Collins 9-1-29-0 (nb-2), Collymore 9-2-33-0 (nb-3, w-1), Lawson 7-1-20-3, Bravo 6-1-28-0, Banks 5-1-20-0, Gayle 2-1-8-0