Dean Morgan's second-half penalty gave Chesterfield a hard-fought win to boost their survival chances while denting Sheffield Wednesday's promotion push.
John Bostock fouled Nicky Ajose and Morgan coolly dispatched the spot-kick.
Ryan Lowe, Reda Johnson and Lewis Buxton went close for the Owls in the first half, while Rob Jones had a header saved by Tommy Lee late on.
But Chesterfield had chances too, with Stephen Bywater denying Liam Ridehalgh and Drew Talbot.
It was Wednesday's third straight defeat in the league as they missed the chance to temporarily reclaim second place from city rivals Sheffield United.
VIEWS FROM THE DRESSING ROOM
Chesterfield manager John Sheridan tells BBC Radio Sheffield:
"Other than the first 10 minutes, I thought Wednesday came out really strong and put us under a lot of pressure, which I expected, but I thought once we got in the game we really battled.
"I thought our second-half performance was really, really good and we came out looking to put them under a lot of pressure.
"Luckily for us we got the break with a penalty and I said to the lads stay in the game, keep it tight and that's what happened.
"We've shown great desire to keep a clean sheet near the end with Tommy [Smith] and the defenders defended really solidly.
"It's great for the fans, great to give us a boost beating one of the top teams and the main thing is it's three points."
Sheffield Wednesday manager Gary Megson tells BBC Radio Sheffield:
"I would say that is the best start to a game that we've had maybe since Tranmere, that was an exceptional start and today wasn't too far off, but against Tranmere we scored and today we didn't.
"It was decided by a soft penalty, not soft in terms that it was given, but soft in the way we defended it.
"The actual tackle itself was a little bit flimsy, shouldn't have been made and it's cost us the game.
"It's difficult to say an isolated incident has cost you the game - it probably has in terms of... we've obviously been beaten 1-0, but the amount of chances and the way we played in the first half was very good."
Live Text Commentary
Full Time The final whistle is blown by the referee.90:00 +3:01
The ball is swung over by Dean Morgan, Shot by Craig Westcarr from deep inside the penalty area misses to the right of the goal.90:00 +2:07
Centre by Ryan Lowe.89:27
Effort on goal by Danny Batth from just outside the penalty area goes harmlessly over the target.87:41
Effort on goal by Gary Madine from just inside the penalty area goes harmlessly over the target.86:27
Josh Thompson restarts play with the free kick.86:27 Booking
Booking The referee shows John Bostock a yellow card for unsporting behaviour.86:17
Unfair challenge on Nick Ajose by John Bostock results in a free kick.86:08
Danny Batth produces a cross, Simon Ford manages to make a clearance.83:55 Substitution
Substitution (Chesterfield) makes a substitution, with Craig Westcarr coming on for Jack Lester.82:33
Jack Lester is caught offside. Stephen Bywater takes the indirect free kick.80:16
Corner from right by-line taken by John Bostock.80:01
Clinton Morrison takes a shot. Josh Thompson gets a block in.79:03
John Bostock takes the outswinging corner, Rob Jones takes a shot. Tommy Lee makes a save.77:52
The assist for the goal came from Nick Ajose.77:52 Goal scored
Goal! - Dean Morgan - Chesterfld 1 - 0 Sheff Wed Dean Morgan scores a power penalty. Chesterfield 1-0 Sheff Wed.76:54
Lewis Buxton concedes a Penalty for a foul on Nick Ajose.76:10
Reda Johnson delivers the ball, clearance by Simon Ford.75:58
A cross is delivered by Ryan Lowe.74:51
The ball is delivered by Lewis Buxton, Ryan Lowe takes a shot. Neal Trotman gets a block in.
Clinton Morrison crosses the ball, Simon Ford makes a clearance.73:12
The ball is crossed by David Davis, Rob Jones manages to make a clearance.72:26
Unfair challenge on Jack Lester by John Bostock results in a free kick. Free kick crossed right-footed by Nick Ajose from right channel, Jose Vitor Semedo makes a clearance.71:43
Effort from just outside the area by Gary Madine goes over the target.68:59
Jose Vitor Semedo concedes a free kick for a foul on David Davis. Free kick taken by Tommy Lee.67:33
Dean Morgan takes a shot. Blocked by Danny Batth.67:21
The ball is sent over by Liam Ridehalgh, clearance by Rob Jones.66:15
Clinton Morrison takes a shot. Blocked by Josh Thompson.65:13 Substitution
Substitution Clinton Morrison joins the action as a substitute, replacing Chris Lines.64:20
Outswinging corner taken from the right by-line by Nick Ajose.64:04
Corner taken by Nick Ajose, Lewis Buxton manages to make a clearance.63:37
Drew Talbot takes a shot. Save made by Stephen Bywater.63:06
Unfair challenge on Liam Ridehalgh by John Bostock results in a free kick. The free kick is swung in left-footed by Liam Ridehalgh, clearance by Gary Madine.61:50
The assistant referee signals for offside against Ryan Lowe. Free kick taken by Tommy Lee.60:16
Liam Ridehalgh challenges Gary Madine unfairly and gives away a free kick. Free kick taken by Stephen Bywater.58:37
Jack Lester is ruled offside. Free kick taken by Stephen Bywater.54:48
Outswinging corner taken right-footed by Nick Ajose from the right by-line, Gary Madine manages to make a clearance.53:20 Substitution
Substitution Gary Madine on for Chris O'Grady.52:56
Effort on goal by David Davis from long range goes over the crossbar.51:12
Drew Talbot fouled by John Bostock, the ref awards a free kick. Josh Thompson takes the direct free kick.50:15
David Davis produces a right-footed shot from outside the penalty box and misses wide left of the target.49:43
Corner taken right-footed by Nick Ajose, Danny Batth makes a clearance.48:11
Inswinging corner taken by John Bostock.46:51
The referee gives a free kick against Chris O'Grady for handball. Free kick taken by Tommy Lee.45:01
The game restarts for the second half.45:00 +3:07 Half time
Half Time The ref blows to signal half-time.45:00 +2:14
David Prutton has an effort at goal from outside the area which goes wide right of the goal.45:00 +1:38
Ryan Lowe produces a left-footed shot from deep inside the penalty area which goes wide of the left-hand post.45:00 +1:02 Substitution
Substitution Gregor Robertson leaves the field to be replaced by Dean Morgan.45:00 +0:28
The ball is delivered by Nick Ajose, clearance by Rob Jones.44:46
John Bostock concedes a free kick for a foul on David Davis. Simon Ford takes the free kick.41:45
Corner taken by John Bostock, clearance made by Liam Ridehalgh.39:41
The assistant referee signals for offside against Jack Lester. Indirect free kick taken by Danny Batth.36:46
Nick Ajose produces a left-footed shot from the edge of the area and misses to the left of the goal.33:53
Nick Ajose is flagged offside by the assistant referee. Danny Batth restarts play with the free kick.32:18
Inswinging corner taken right-footed by Chris Lines from the left by-line, save made by Tommy Lee.31:17
The offside flag is raised against Jack Lester. Free kick taken by Stephen Bywater.30:01
The ball is crossed by John Bostock, Mark Allott manages to make a clearance.29:18
Outswinging corner taken by Liam Ridehalgh.28:37
Corner taken by Liam Ridehalgh, David Davis takes a shot.28:18
Liam Ridehalgh takes a shot. Save by Stephen Bywater.26:46
Handball by Jack Lester. The free kick is delivered right-footed by Chris Lines from right channel.26:08
Corner from the right by-line taken by Chris Lines, Simon Ford makes a clearance.24:55
Free kick awarded for an unfair challenge on Josh Thompson by John Bostock. Tommy Lee takes the free kick.24:13 Substitution
Substitution John Bostock replaces Jermaine Johnson.23:54
Reda Johnson concedes a free kick for a foul on Gregor Robertson. Direct free kick taken by Tommy Lee.21:46
Centre by Josh Thompson, clearance by Danny Batth.19:44
Free kick taken by Tommy Lee.19:44 Booking
Booking Ryan Lowe receives a caution for unsporting behaviour.19:38
Foul by Ryan Lowe on Tommy Lee, free kick awarded.19:09
The ball is delivered by Ryan Lowe, clearance made by Simon Ford.17:47
Corner taken by Chris Lines from the right by-line. Outswinging corner taken by Chris Lines from the right by-line.16:36
Reda Johnson fouled by David Davis, the ref awards a free kick. The ball is swung over by Chris Lines, Lewis Buxton takes a shot. Blocked by Simon Ford.15:51
David Davis gives away a free kick for an unfair challenge on Jermaine Johnson. Rob Jones takes the direct free kick.15:00
Free kick awarded for a foul by Jose Vitor Semedo on David Davis. Simon Ford restarts play with the free kick.14:01
Corner taken by Chris Lines, Lewis Buxton takes a shot. Save by Tommy Lee.13:51
The ball is crossed by Chris O'Grady, blocked by Josh Thompson.12:59
Jermaine Johnson fouled by Josh Thompson, the ref awards a free kick. The free kick is delivered right-footed by Chris Lines from left channel, Simon Ford makes a clearance.12:10
Jermaine Johnson is adjudged to have handled the ball. Simon Ford takes the direct free kick.10:15
The ball is delivered by Liam Ridehalgh, clearance by Reda Johnson.9:17
Free kick awarded for an unfair challenge on Drew Talbot by Reda Johnson. Free kick crossed left-footed by Liam Ridehalgh, clearance by Jermaine Johnson.7:35
Headed effort from deep inside the penalty area by Ryan Lowe goes harmlessly over the crossbar.7:16
Reda Johnson takes a shot. Tommy Lee makes a save.6:56
Chris O'Grady takes a shot. Blocked by Neal Trotman.4:37
A cross is delivered by Reda Johnson, Ryan Lowe produces a header from inside the area that goes over the bar.3:31
The ball is swung over by Jermaine Johnson, Josh Thompson makes a clearance.2:19
Ryan Lowe sends in a cross, Neal Trotman fouled by Chris O'Grady, the ref awards a free kick. Tommy Lee takes the free kick.1:39
Free kick awarded for a foul by Chris O'Grady on Josh Thompson. Tommy Lee restarts play with the free kick.1:03
Lewis Buxton crosses the ball, save by Tommy Lee.0:50
The ball is crossed by David Prutton, save made by Tommy Lee.0:00
The game kicks-off.
Live data and text provided by our data suppliers