Williams, playing his second full game in six days, looked strong and it's so far so good as he continued his comeback from serious Achilles problems.
It didn't take long for Chelsea to make a breakthrough as they swept in to the lead when good work from Tammy Abraham was rounded off by Kasey Palmer with just two minutes played.
Boro looked for a quick riposte and Harry Chapman brought a save out of Bradley Collins after he danced his way along the goal line.
Chapman was instrumental in Boro's next chance, setting up Joao Morelli but the Brazilian's first touch was too heavy.
Chelsea hit back, Fankaty Dabo crossed from the right and picked out Charly Musonda, but his header was straight at Joe Fryer.
That precipitated a period of pressure from the home side where a curling shot from Musonda was saved by Fryer who was quickly in action again when Palmer went for goal.
Boro settled and went back at their hosts but Morelli missed a decent chance when set up by Bryn Morris who had pounced on a loose ball to drive home.
It was the home side though who closed the first half-strongly as first Abraham headed just wide from a Fikayo Tomori cross, then Charlie Colkett had a shot saved.
Half-time Chelsea 1 Middlesbrough 0
Chelsea were quickly on the offensive in the second half and Abraham shot narrowly wide from a Musonda corner.
Morelli then led a Boro break down the right before pulling a low pass back to Morris who was under pressure when he sliced wide.
Chapman, like his team mates, was much better than at Reading last week. Tonight he was at the heart of most good Boro things and he very nearly scored a super goal on 57 minutes when he burst clear down the left but sent a low shot/cross off target.
An open, competitive game nearly boiled to the surface in a five minute spell when Mark Kitching was hurt in a full blooded challenge with Dabo and needed treatment, and two Boro players were shown the yellow card, Kitching one of them for an unrelated incident.
Sean Maloney did his best to try and get Boro back in the game, but a 25 yard drive was always clearing the bar.
A backheeled effort from Palmer was off target before Fryer was called in to action to tip a firm Abraham shot wide as Chelsea looked for a second that would make life very difficult for a Boro side who were still in the game with a quarter-of-an-hour to go.
Chelsea were good, but they hadn't put any sizeable distance between themselves and a side determined to show what they were made of.
Andre Bennett, back after an operation, sent over a teasing cross that eluded everyone, then Collins, somehow, managed to keep out Robbie Tinkler with a remarkable double save.
In the closing seconds it took a great block from Fry to deny Musonda. A second Chelsea goal would have been rough justice on a Boro side that turned in a spirited performance.
Chelsea: Collins, Dabo, Tomori, Chalobah, Clarke-Salter, Colkett (Capt.), Palmer (Scott 90), Ali, Abraham, Musonda, Dasilva. Subs: Baster, Mitchell, Wakefield, Colley.
Boro: Fryer; Bennett, Fry Williams (Capt.), Kitching, Tinkler, Morelli (Pattison 83), Maloney (Elsdon 90), Jakupovic, Morris, Chapman. Subs: Coddington (gk); Johnson, Coulson.
Referee Mr Lloyd Wood
Yellow cards Fry, 37 foul; Kitching, 58 foul; Tinkler, 63 foul; Chalobah, 83 foul.
Chelsea U21s 1 Boro U21s 0
*The U21 game between Boro and Sunderland scheduled for Monday February 8 has been put back seven days and will now be played at Hartlepool with a 7pm kick-off on Monday 15. This is because of Boro's involvement in the UEFA Youth League.