Primeira Liga Wrap: Sporting win thriller
Two goals in eight minutes from William and Islam Slimani had the Estadio Jose Alvalade hosts in good spirits, having come into the clash off a 3-0 defeat to Porto.
But as quick as Sporting Lisbon had gained their comfortable standing, they lost it as Penafiel got a significant leg up into the contest - via a red card to Sporting centre-half Tobias Figueiredo, and a goal back to veteran midfielder Bruno Braga in the 12th minute.
Penafiel were level before the break, making the most of their numerical advantage via Vitor Bruno three minutes prior to half-time.
A brave retort from Sporting saw them fire in the winner, former Manchester United winger Nani producing it in the 70th minute - and late on, frustrations boiled over as Penafiel bemoaned their wasted chance for valuable points.
Three points clear bottom, and four from safety, Penafiel had both Dani and Pedro Ribeiro sent off after collecting second yellow cards in the final stages.
Mid-table Rio Ave and Nacional played out a 1-1 stalemate.
Visiting Nacional stayed two points clear of ninth-placed Rio Ave, after Marco Matias scored in the 50th minute - cancelling out Marvin Zeegelaar's opener in the first minute after the restart.