Watford extended their unbeaten run to four games but will look back on this afternoon’s pulsating 2-2 draw with Millwall as an opportunity missed, even though they needed an injury-time equaliser to salvage a point.

The Hornets were the better side and played some of their best attacking football of the season as they sought to make it a nine-point week.

But their efforts looked like they would come to nothing when their vulnerabilities from crosses and set-pieces were exposed again as Wes Harding powered in a header from a corner five minutes from the end of normal time.

There is spirit and togetherness about this squad though, they rolled their sleeves up and ensured they gained some reward when Mileta Rajovic headed home a superb cross from fellow substitute to equalise two minutes into additional time.

The Hornets had made the early breakthrough in the first half when Yaser Asprilla blocked Jake Cooper’s attempted clearance back into the net after goalkeeper Bartosz Bialkowski had spilt an Edo Kayembe shot.

But the lead was to be shortlived, with Zian Flemming heading the visitors level after Tom Bradshaw had flicked on Casper De Norre’s cross.

Apart from a spell after being pegged back – and later in the second half when Ismael had made three substitutions – Watford had more of the game and looked the more likely to find a winner from open play.

Nobody in a yellow shirt had a bad game, with Asprilla and Ken Sema proving a real handful for their opponents and ensuring their side were able to get more crosses into the box than they had for some time.

With Vakoun Bayo impressing with his effort and line leading in the hour he was on the pitch, Kayembe and Ismael Kone catching the eye in midfield, augmented by good attacking performances from full-backs Jeremy Ngakia and Jamal Lewis the Hornets were able to ask more of the questions, but they were unable to get their noses in front for a second time.

The Hornets may have made it back-to-back wins at Swansea City but that didn’t stop Ismael from again tweaking his starting line-up.

Tuesday night’s match-winner Sema made his first start since returning from injury and Asprilla was also promoted from the bench, with Matheus Martins and Tom Ince dropping down to the substitutes.

Millwall were beaten 2-1 at home by Blackburn Rovers in midweek and interim manager Adam Barrett chose to make four changes.

In came Danny McNamara, Murray Wallace, George Saville and George Honeyman, with Billy Mitchell, Ryan Longman and Aidome Emakhu dropping to the bench, while Joe Bryan was not involved.

The game got off to a sedate start but it was the Lions who had the first attempt in the fifth minute when the ball was played into Flemming in space around 25 yards out, but his left-footed strike didn’t unduly trouble Daniel Bachmann on his 100th appearance for the Hornets.

Within two minutes though, the home side were in front.

After Ngakia had seen a shot partially blocked, Kayembe worked the ball back on to his left foot in the area and hit a low drive which Bialkowski failed to hold, Cooper tried to clear but was unaware he was being closed down by Asprilla and the ball rebounded off the Colombian and into the net to give Watford the early advantage.

It could have got even better soon after when Kone received the ball on the left side of the area and went for a right-footed curler which the sliding Bayo wasn’t far away from connecting with as the ball went across goal and wide.

But the Hornets were to be in front for less than five minutes.

Watford were unable to clear their lines from a corner and Honeyman played the ball back to De Norre on the right, he whipped in a cross which Bradshaw flicked on and the stooping Flemming headed inside Bachmann’s near post to make it 1-1.

Boosted by getting back on terms quickly, Millwall were already using their power and physicality to try and get the upper hand, while their opponents tried to let their football do the talking.

The pace and trickery of Asprilla saw him on the receiving end of some of the physical stuff, first literally hounded off the ball by a pack of Lions after a neat flick on halfway had led him to going on a solo counter-attack, before he was barged into the hoardings by Honeyman.

But it took an instinctive reaction save to prevent Watford from going back in front after 26 minutes when a corner from the left was glanced on by Francisco Sierralta and Asprilla looked certain to hook in his second from close range, only for it to be somehow kept out by Bialkowski.

It was inevitable that a booking would arrive sooner or later and De Norre was the recipient in the 27th minute for pulling back Sema.

Watford were getting some joy down the left flank and the combination of Sema and Lewis led to the latter playing in a low cross which Bayo was unable to get on the end of in the 33rd minute.

Jake Livermore levelled up the card count four minutes later for dissent, but it quickly moved back into Millwall’s ‘favour’ when Saville was booked for bringing down Kone from behind.

The Hornets were asking more of the questions at this stage though, and McNamara had to throw himself in front of a Sema shot after a promising build up involving Kayembe and Ngakia.

Soon after, a stretching Bayo headed an Asprilla cross from the right over as the hosts continued to knock on the door in the closing stages of the first half as it ended all-square.

But that very nearly changed a minute after the restart when Ngakia picked up the ball in his own half, exchanged passes with Asprilla and put his foot down to get into the opposition area before trying a left-footed effort which took a wicked deflection off Harding and went narrowly wide of Bialkowski’s near post.

Asprilla received the fourth yellow card of the afternoon in the 50th minute for pulling back Saville, but Watford were continuing where they left off in the first half by taking the game to their opponents.

After a delay in proceedings while Sierralta received treatment for a head injury, the Hornets almost went in front again when the hard-working Bayo closed down Bialkowski as he took his time clearing the ball, getting a partial block on it but the ball went wide of the target.

Next, Kayembe chanced his arm with a left-footed strike on the run from 25 yards which the diving Bialkowski managed to parry away from goal.

Millwall were the first side to make a change in the 59th minute when Longman replaced Honeyman, but Ismael followed suit with a triple substitution as Martins, Louza and Rajovic came on for Asprilla, Kone and Bayo.

The Lions hadn’t shown much from an attacking perspective in the second half, but they did manage an attempt when Flemming fired a left-footed shot over from 20 yards.

But the visitors went much closer in the 65th minute when Brooke Norton-Cuffy danced inside off the right flank, beating several opponents on a run into the area before the ball broke for Longman whose first-time strike from just outside the 18-yard box wasn’t too far wide of Bachmann’s right-hand post.

Norton-Cuffy shot over from distance as Millwall’s good spell continued, with their opponents having lost their impetus following the triple substitution, but they weathered that period and started to push on again – Bialkoswki far from convincing with how he managed to keep out a Martins shot from the left side of the area.

Watford had another chance in the 78th minute when Martins released Lewis on the left side of the 18-yard box and his pull back broke nicely for Louza, but he chose to take it first time and scuffed his shot wide.

Referee Keith Stroud’s sometimes strange decision making struck again in the 80th minute when he decided to book Sema for time wasting as he was preparing to take a corner.

But from Sema’s next corner delivery, this time from the left, the ball broke invitingly for Sierralta at the back post, but he lashed over after having the time to bring it under control.

Sema’s good afternoon came to an end in the 82nd minute when he made way for Ince, the same time as the Lions made a double substitution with Kevin Nisbet and Mitchell replacing for Bradshaw and De Norre.

The Hornets were looking the more likely winners but two minutes later their vulnerability from corners was to be exposed again.

Saville played in the ball from the right and Harding broke free of Louza to power a header past the helpless Bachmann to put the home side 2-1 in front.

Ismael brought on Rhys Healey for Kayembe in a last throw of the dice, but moments later the Hornets were fortunate to escape from another set piece thanks to some excellent last-gasp defending from the newly arrived substitute.

A free-kick was played in from the left and Cooper got above Bachmann, but Healey had anticipated the danger and got back on the line to head the ball up and off the crossbar, with Watford escaping from the ensuing scramble.

It was to prove a big moment because two minutes into injury time the Hornets levelled.

Martins fed the overlapping Louza on the left and the Moroccan hit a superb cross on the run into the six-yard box where Rajovic rose unmarked to head down and past Bialkowski to make it 2-2.

The Lions did have the opportunity to try and force a late winner when they were able to swing a free-kick into the box from the left, but more defensive bravery from Sierralta, who spent the last 20 minutes with his head in bandage, ensured an absorbing game ended with a point apiece.

Watford: Bachmann; Ngakia, Sierralta, Hoedt, Lewis; Kayembe (Healey 87), Livermore, Kone (Louza 60); Asprilla (Martins 60), Bayo (Rajovic 60), Sema (Ince 82). Subs not used: Hamer, Porteous, Pollock, Chakvetadze.

Millwall: Bialkowski; McNamara, Harding, Cooper, Wallace; Norton-Cuffy, De Norre, Saville, Honeyman (Longman 59); Bradshaw (Nisbet 82), Flemming. Subs not used: Trueman, Emakhu, Esse, Leahy, Grant, Adom-Malaki.

Bookings: De Norre for a foul on Sema (27); Livermore for dissent (37); Saville for a foul on Kone (38); Asprilla for a foul on Saville (50); Sema for time wasting (80); Norton-Cuffy for a foul on Martins (90+3).

Referee: Keith Stroud.