Aston Villa have won the race to sign Newcastle United winger James Milner after agreeing a four-year deal with the England Under 21 international.
Milner underwent a medical at Bodymoor Heath, and has made the move from the north-east for a fee believed to be in the region of £10million.
Everton made a late attempt to hijack the deal by matching Villa's offer, after missing out on Albert Riera and Shaun Wright-Phillips, but Villa Park was the 22-year-old's preferred destination.
O'Neill has been keen to land a right winger all summer, with central midfielder Nigel Reo-Coker currently filling the role on the right side of a diamond formation.
The Villa boss attempted to sign Milner two years ago in his first summer in charge, for around half of the price, after Milner had enjoyed a successful loan spell during David O'Leary's reign - but Newcastle pulled the plug on the deal at the 11th hour.
Milner signed a new four-year contract last summer with the Magpies, but last week handed in a transfer request.
The Magpies infuriated Milner's representatives when they made his intentions public on Wednesday and the youngster will now line up with fellow U21 internationals Gabby Agbonlahor, Craig Gardner and Curtis Davies.
Milner becomes O'Neill's seventh signing of the summer and will further bolster the squad after they booked a place in the first round proper of the UEFA Cup for the first time in seven years.
Meanwhile, Newcastle boss Kevin Keegan insisted it was his decision to sell Milner.
'He's a player, in an ideal world, you would not want to lose', he said. 'But I just want to make it absolutely clear that at the end of the day, it was my decision to sell him.
'We got an offer that I feel was his value. We are all aware James has had a difficult time - he almost signed for them once before and was dragged back.
'But he has always behaved impeccably. He's a fantastic professional, and there's no doubt about it, they've got an outstanding player and we have got to move on.'
The player himself said: 'I enjoyed every minute at Newcastle. It was a fantastic club. I enjoyed working with the manager and they are a great bunch of lads.
'But I knew offers had come in over the summer and the club had turned them down and the valuation of me wasn't reflected in the deal I was on.
'Speaking to them, I felt it was the right thing to put in a transfer request to show how I felt, seeing as they didn't think they were on the same wavelength as me and they then made the decision to sell me.
'It was Newcastle's decision and now I am at Aston Villa. A new contract was never discussed. That was a source of frustration.'
Milner also paid tribute to Newcastle manager Kevin Keegan who wanted to keep hold of the services of the former Leeds player.
He said: 'He has been fantastic with me all the way through. I had a great relationship with him, learnt a lot and wish him every luck.
'We talked a few times and last night, once the fee had been agreed, he wished me every luck in the world and that is it basically.
'Things change quickly in football. All I know is the offer has been accepted and I'm a Villa player now and the Newcastle chapter is ended.'