Match ends, Wales 1, Northern Ireland 1.
Northern Ireland were denied a first away friendly win in almost a decade as Wales scored a late penalty to earn a draw in their Euro 2016 warm-up.
An injury-hit Wales edged a goalless first half as David Cotterill had a free-kick saved by Michael McGovern.
Northern Ireland improved after the break and led as Craig Cathcart struck with a low shot on the turn.
The visitors defended diligently but were undone when Gareth McAuley fouled Simon Church, who converted.
Had Northern Ireland held on for victory, it would have been their first in a friendly on the road since beating Finland in August 2006.
For a Wales side without Gareth Bale and Aaron Ramsey, Church's equaliser was reward for a willing - but somewhat blunt - performance which exposed their lack of strength in depth at times.
Players audition for Euros
Both managers had earmarked this fixture as an opportunity for fringe players to further their case for inclusion in their respective Euro 2016 squads.
Wales' George Williams sparkled in his audition, as the Fulham winger - currently on loan at Gillingham - ran at opposition defenders with menace and trickery.
Queens Park Rangers striker Conor Washington made his debut for Northern Ireland but struggled to make an impression as the visitors sat back content to defend.
Away-day trouble for O'Neill's side
It was understandable that Michael O'Neill's side approached the game in pragmatic fashion - because they came to Cardiff with a dismal away friendly record.
O'Neill had never won a friendly on the road during his five-year reign, while the team's run of just one goal in 17 away friendlies stretched back nine-and-a-half years.
They did not look like improving that record in a first half in which they failed to register a shot on target but they were more of a threat in the second.
Kyle Lafferty had a shot saved by debutant goalkeeper Danny Ward and, when Wales failed to clear a corner after an hour, Cathcart was on hand to swivel and score with a powerful effort.
Weakened Wales dig in
Without several first-team players, Wales made five changes from November's friendly defeat by the Netherlands.
One of those returning to the side, Birmingham midfielder Cotterill, had the game's first chance as his firmly-struck free-kick was palmed away by Northern Ireland keeper McGovern.
He and Williams were Wales' likeliest sources of a goal, though they struggled to turn long spells of possession into scoring opportunities.
Their chance eventually came in the 89th minute as Church was felled by McAuley in his attempt to collect a through ball.
The striker, on loan at Aberdeen from MK Dons, took the penalty himself and whipped the ball beyond McGovern to earn Wales a deserved draw.
Man of the match - Ashley Williams (Wales)
What they said
Wales manager Chris Coleman: "There were lots of positives out of it - even if we'd come off and lost 1-0.
"They had a good mentality and attitude and I was happy with the players."
Northern Ireland manager Michael O'Neill: "It would have been nice to win but we were able to give 17 players some game time and experiment with a couple of different systems.
"We have very limited opportunities to look at systems but the players adapted to both well."
The stats you need to know
- Craig Cathcart has scored two goals in his last three appearances for Northern Ireland.
- Wales are unbeaten in eight internationals against Northern Ireland (W4 D4).
- The Welsh have lost just one of their last 10 games at home (W5 D4).
- Four of the last six meetings between these two sides have ended in draws.
Wales have two more friendlies confirmed to help them prepare for the Euros, with a trip to Ukraine on Monday followed by an away game against Sweden on 5 June. Their group opponents in France are Slovakia, England and Russia.
Northern Ireland host Slovenia on Monday, then have a home game against Belarus (27 May) and an away match against Slovakia (4 June) before the tournament in France, where they are in the same group as Poland, Ukraine and Germany.
- 1HennesseySubstituted forWardat 45'minutes
- 4VaughanSubstituted forAllenat 71'minutes
- 16LedleySubstituted forCroftsat 45'minutes
- 7WilliamsSubstituted forIsgroveat 62'minutes
- 10LawrenceSubstituted forWilliamsat 62'minutes
- 9VokesSubstituted forChurchat 76'minutes
- 12Fon Williams
- 5EvansSubstituted forLaffertyat 74'minutes
- 2McLaughlinSubstituted forHughesat 81'minutes
- 17McNairSubstituted forPatonat 74'minutes
- 14DallasSubstituted forFergusonat 89'minutes
- 10LaffertySubstituted forMckayat 81'minutes
- 24WashingtonSubstituted forWardat 45'minutes
- Shots on Target
Second Half ends, Wales 1, Northern Ireland 1.
Attempt missed. Lloyd Isgrove (Wales) header from the centre of the box misses to the left. Assisted by Andrew Crofts with a cross.
Substitution, Northern Ireland. Shane Ferguson replaces Stuart Dallas.
Goal! Wales 1, Northern Ireland 1. Simon Church (Wales) converts the penalty with a right footed shot to the top left corner.
Penalty Wales. Simon Church draws a foul in the penalty area.
Penalty conceded by Gareth McAuley (Northern Ireland) after a foul in the penalty area.
Jonathan Williams (Wales) wins a free kick on the right wing.
Foul by Steven Davis (Northern Ireland).
James Chester (Wales) wins a free kick in the defensive half.
Foul by Billy McKay (Northern Ireland).
Offside, Wales. Andrew Crofts tries a through ball, but Simon Church is caught offside.
Attempt blocked. Andrew Crofts (Wales) left footed shot from outside the box is blocked. Assisted by Joe Allen.
Offside, Northern Ireland. Craig Cathcart tries a through ball, but Jamie Ward is caught offside.
Joe Allen (Wales) wins a free kick in the defensive half.
Foul by Billy McKay (Northern Ireland).
Substitution, Northern Ireland. Aaron Hughes replaces Conor McLaughlin.
Substitution, Northern Ireland. Billy McKay replaces Kyle Lafferty.
Offside, Northern Ireland. Daniel Lafferty tries a through ball, but Kyle Lafferty is caught offside.
Corner, Wales. Conceded by Conor McLaughlin.