There were long delays on the M6 northbound between Junction 13 for Stafford and Junction 14 for Stone.
Highways West Midlands closed off three lanes as crews worked to clear the carriageway at around 3.19pm on Saturday.
A spokesman for Highways England tweeted: "3 lanes (of 4) are closed on the M6 northbound between J13 for Stafford and J14 for Stone due to a shed load of shampoo."
It comes after motorists heading north had endured 45-minute delays on the approach to Junction 10 at Walsall, where the M6 has been completely shut to allow a bridge to be demolished.
The mess was cleaned up and the motorway fully reopened at 3.50pm.
A spokesman for National Highways said: "Three lanes of traffic were closed on the Northbound carriageway between junctions 13 and 14 after a lorry shed a load of shampoo bottles across the carriageway.
"It resulted in lanes one to three being closed as a clean up crew worked to clean up the motorway.
"That work was completed and the motorway reopened fully at 3.50pm."